Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
ba298b1f
Commit
ba298b1f
authored
Mar 24, 2017
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.0 into 10.1
parents
716188f1
c51fc679
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
51 deletions
+43
-51
mysql-test/suite/innodb/r/innodb_bug14676111.result
mysql-test/suite/innodb/r/innodb_bug14676111.result
+13
-16
mysql-test/suite/innodb/t/innodb_bug14676111.test
mysql-test/suite/innodb/t/innodb_bug14676111.test
+30
-35
No files found.
mysql-test/suite/innodb/r/innodb_bug14676111.result
View file @
ba298b1f
set @old_innodb_limit_optimistic_insert_debug = @@innodb_limit_optimistic_insert_debug;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0;
set global innodb_limit_optimistic_insert_debug = 2;
set global innodb_limit_optimistic_insert_debug = 2;
insert into t1 values (1);
insert into t1 values (1);
begin;
insert into t1 values (5);
insert into t1 values (5);
begin;
insert into t1 values (4);
insert into t1 values (4);
insert into t1 values (3);
insert into t1 values (3);
begin;
insert into t1 values (2);
insert into t1 values (2);
analyze table t1;
analyze table t1;
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
...
@@ -11,48 +15,40 @@ test.t1 analyze status OK
...
@@ -11,48 +15,40 @@ test.t1 analyze status OK
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
CLUST_INDEX_SIZE
CLUST_INDEX_SIZE
10
10
delete from t1 where a=4;
rollback;
set global innodb_purge_stop_now=ON;
set global innodb_purge_run_now=ON;
analyze table t1;
analyze table t1;
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
test.t1 analyze status OK
test.t1 analyze status OK
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
CLUST_INDEX_SIZE
CLUST_INDEX_SIZE
8
8
delete from t1 where a=5;
rollback;
set global innodb_purge_stop_now=ON;
set global innodb_purge_run_now=ON;
analyze table t1;
analyze table t1;
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
test.t1 analyze status OK
test.t1 analyze status OK
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
CLUST_INDEX_SIZE
CLUST_INDEX_SIZE
5
5
set global innodb_limit_optimistic_insert_debug = 0;
set global innodb_limit_optimistic_insert_debug = 10000;
delete from t1 where a=2;
rollback;
set global innodb_purge_stop_now=ON;
set global innodb_purge_run_now=ON;
analyze table t1;
analyze table t1;
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
test.t1 analyze status OK
test.t1 analyze status OK
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
CLUST_INDEX_SIZE
CLUST_INDEX_SIZE
3
3
begin;
insert into t1 values (2);
insert into t1 values (2);
delete from t1 where a=2;
rollback;
set global innodb_purge_stop_now=ON;
set global innodb_purge_run_now=ON;
analyze table t1;
analyze table t1;
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
test.t1 analyze status OK
test.t1 analyze status OK
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
CLUST_INDEX_SIZE
CLUST_INDEX_SIZE
2
2
begin;
insert into t1 values (2);
insert into t1 values (2);
delete from t1 where a=2;
rollback;
set global innodb_purge_stop_now=ON;
set global innodb_purge_run_now=ON;
analyze table t1;
analyze table t1;
Table Op Msg_type Msg_text
Table Op Msg_type Msg_text
test.t1 analyze status OK
test.t1 analyze status OK
...
@@ -60,3 +56,4 @@ select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME
...
@@ -60,3 +56,4 @@ select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME
CLUST_INDEX_SIZE
CLUST_INDEX_SIZE
1
1
drop table t1;
drop table t1;
set global innodb_limit_optimistic_insert_debug = @old_innodb_limit_optimistic_insert_debug;
mysql-test/suite/innodb/t/innodb_bug14676111.test
View file @
ba298b1f
...
@@ -2,18 +2,9 @@
...
@@ -2,18 +2,9 @@
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_debug
.
inc
--
source
include
/
have_debug
.
inc
--
source
include
/
count_sessions
.
inc
if
(
`select count(*)=0 from information_schema.global_variables where variable_name = 'INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG'`
)
{
--
skip
Test
requires
InnoDB
built
with
UNIV_DEBUG
definition
.
}
--
disable_query_log
set
@
old_innodb_limit_optimistic_insert_debug
=
@@
innodb_limit_optimistic_insert_debug
;
set
@
old_innodb_limit_optimistic_insert_debug
=
@@
innodb_limit_optimistic_insert_debug
;
set
@
old_innodb_undo_logs
=
@@
innodb_undo_logs
;
# Limit undo segments for stable progress of purge.
set
global
innodb_undo_logs
=
1
;
--
enable_query_log
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
)
ENGINE
=
InnoDB
STATS_PERSISTENT
=
0
;
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
)
ENGINE
=
InnoDB
STATS_PERSISTENT
=
0
;
...
@@ -22,22 +13,29 @@ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0;
...
@@ -22,22 +13,29 @@ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0;
#
#
set
global
innodb_limit_optimistic_insert_debug
=
2
;
set
global
innodb_limit_optimistic_insert_debug
=
2
;
insert
into
t1
values
(
1
);
insert
into
t1
values
(
1
);
--
connect
(
con5
,
localhost
,
root
)
begin
;
insert
into
t1
values
(
5
);
insert
into
t1
values
(
5
);
#current tree form
#current tree form
# (1, 5)
# (1, 5)
--
connect
(
con4
,
localhost
,
root
)
begin
;
insert
into
t1
values
(
4
);
insert
into
t1
values
(
4
);
#records in a page is limited to 2 artificially. root rise occurs
#records in a page is limited to 2 artificially. root rise occurs
#current tree form
#current tree form
# (1, 5)
# (1, 5)
#(1, 4) (5)
#(1, 4) (5)
--
connection
default
insert
into
t1
values
(
3
);
insert
into
t1
values
(
3
);
#current tree form
#current tree form
# (1, 5)
# (1, 5)
# (1, 4) (5)
# (1, 4) (5)
#(1, 3) (4) (5)
#(1, 3) (4) (5)
--
connect
(
con2
,
localhost
,
root
)
begin
;
insert
into
t1
values
(
2
);
insert
into
t1
values
(
2
);
#current tree form
#current tree form
# (1, 5)
# (1, 5)
...
@@ -45,13 +43,15 @@ insert into t1 values (2);
...
@@ -45,13 +43,15 @@ insert into t1 values (2);
# (1, 3) (4) (5)
# (1, 3) (4) (5)
#(1, 2) (3) (4) (5)
#(1, 2) (3) (4) (5)
--
connection
default
analyze
table
t1
;
analyze
table
t1
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
delete
from
t1
where
a
=
4
;
--
connection
con4
set
global
innodb_purge_stop_now
=
ON
;
rollback
;
set
global
innodb_purge_run_now
=
ON
;
--
disconnect
con4
--
source
include
/
wait_innodb_all_purged
.
inc
--
connection
default
#deleting 1 record of 2 records don't cause merge artificially.
#deleting 1 record of 2 records don't cause merge artificially.
#current tree form
#current tree form
# (1, 5)
# (1, 5)
...
@@ -62,10 +62,11 @@ set global innodb_purge_run_now=ON;
...
@@ -62,10 +62,11 @@ set global innodb_purge_run_now=ON;
analyze
table
t1
;
analyze
table
t1
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
delete
from
t1
where
a
=
5
;
--
connection
con5
set
global
innodb_purge_stop_now
=
ON
;
rollback
;
set
global
innodb_purge_run_now
=
ON
;
--
disconnect
con5
--
source
include
/
wait_innodb_all_purged
.
inc
--
connection
default
#deleting 1 record of 2 records don't cause merge artificially.
#deleting 1 record of 2 records don't cause merge artificially.
#current tree form
#current tree form
# (1)
# (1)
...
@@ -81,11 +82,12 @@ select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME
...
@@ -81,11 +82,12 @@ select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME
#
#
#disable the artificial limitation of records in a page
#disable the artificial limitation of records in a page
set
global
innodb_limit_optimistic_insert_debug
=
0
;
set
global
innodb_limit_optimistic_insert_debug
=
10000
;
delete
from
t1
where
a
=
2
;
--
connection
con2
set
global
innodb_purge_stop_now
=
ON
;
rollback
;
set
global
innodb_purge_run_now
=
ON
;
--
disconnect
con2
--
source
include
/
wait_innodb_all_purged
.
inc
--
connection
default
#merge page occurs. and lift up occurs.
#merge page occurs. and lift up occurs.
#current tree form
#current tree form
# (1)
# (1)
...
@@ -95,16 +97,14 @@ set global innodb_purge_run_now=ON;
...
@@ -95,16 +97,14 @@ set global innodb_purge_run_now=ON;
analyze
table
t1
;
analyze
table
t1
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
begin
;
insert
into
t1
values
(
2
);
insert
into
t1
values
(
2
);
#current tree form
#current tree form
# (1)
# (1)
# (1) <- lift up this level next, because it is not root
# (1) <- lift up this level next, because it is not root
# (1, 2, 3)
# (1, 2, 3)
rollback
;
delete
from
t1
where
a
=
2
;
set
global
innodb_purge_stop_now
=
ON
;
set
global
innodb_purge_run_now
=
ON
;
--
source
include
/
wait_innodb_all_purged
.
inc
#current tree form
#current tree form
# (1)
# (1)
# (1, 3)
# (1, 3)
...
@@ -112,15 +112,12 @@ set global innodb_purge_run_now=ON;
...
@@ -112,15 +112,12 @@ set global innodb_purge_run_now=ON;
analyze
table
t1
;
analyze
table
t1
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
select
CLUST_INDEX_SIZE
from
information_schema
.
INNODB_SYS_TABLESTATS
where
NAME
=
'test/t1'
;
begin
;
insert
into
t1
values
(
2
);
insert
into
t1
values
(
2
);
#current tree form
#current tree form
# (1)
# (1)
# (1, 2, 3) <- lift up this level next, because the father is root
# (1, 2, 3) <- lift up this level next, because the father is root
rollback
;
delete
from
t1
where
a
=
2
;
set
global
innodb_purge_stop_now
=
ON
;
set
global
innodb_purge_run_now
=
ON
;
--
source
include
/
wait_innodb_all_purged
.
inc
#current tree form
#current tree form
# (1, 3)
# (1, 3)
...
@@ -129,7 +126,5 @@ select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME
...
@@ -129,7 +126,5 @@ select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME
drop
table
t1
;
drop
table
t1
;
--
disable_query_log
set
global
innodb_limit_optimistic_insert_debug
=
@
old_innodb_limit_optimistic_insert_debug
;
set
global
innodb_limit_optimistic_insert_debug
=
@
old_innodb_limit_optimistic_insert_debug
;
set
global
innodb_undo_logs
=
@
old_innodb_undo_logs
;
--
source
include
/
wait_until_count_sessions
.
inc
--
enable_query_log
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment