summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2018-12-19 14:05:40 +0300
committerSergei Golubchik <serg@mariadb.org>2019-03-29 12:51:19 +0100
commitf6ee132491f45dfe1856a627a686d29efbfa3034 (patch)
treeeab8467e09ac8188dad5cde9f8c6554bbca352c5 /mysql-test
parent8df04fb894bd06706ee6292d4dd991aacfc1989a (diff)
downloadmariadb-git-f6ee132491f45dfe1856a627a686d29efbfa3034.tar.gz
Versioning tests stability improvement
Fix SELECT resultset order.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/suite/versioning/r/rpl.result54
-rw-r--r--mysql-test/suite/versioning/r/update,trx_id.rdiff19
-rw-r--r--mysql-test/suite/versioning/r/update.result52
-rw-r--r--mysql-test/suite/versioning/t/rpl.test44
-rw-r--r--mysql-test/suite/versioning/t/update.test20
5 files changed, 96 insertions, 93 deletions
diff --git a/mysql-test/suite/versioning/r/rpl.result b/mysql-test/suite/versioning/r/rpl.result
index c5770a91c77..fd62a65f473 100644
--- a/mysql-test/suite/versioning/r/rpl.result
+++ b/mysql-test/suite/versioning/r/rpl.result
@@ -4,38 +4,38 @@ connection slave;
connection master;
CREATE TABLE t1 (x int) with system versioning;
insert into t1 values (1);
-SELECT * FROM t1;
+select * from t1 order by x;
x
1
delete from t1;
-select * from t1;
+select * from t1 order by x;
x
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
1
connection slave;
-select * from t1;
+select * from t1 order by x;
x
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
1
connection master;
insert into t1 values (2);
connection slave;
-select * from t1;
+select * from t1 order by x;
x
2
connection master;
update t1 set x = 3;
connection slave;
-select * from t1;
+select * from t1 order by x;
x
3
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
1
-3
2
+3
# check unversioned -> versioned replication
connection master;
create or replace table t1 (x int primary key);
@@ -44,28 +44,28 @@ alter table t1 with system versioning;
connection master;
insert into t1 values (1);
connection slave;
-select * from t1;
+select * from t1 order by x;
x
1
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
1
connection master;
update t1 set x= 2 where x = 1;
connection slave;
-select * from t1;
+select * from t1 order by x;
x
2
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
1
2
connection master;
delete from t1;
connection slave;
-select * from t1;
+select * from t1 order by x;
x
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
1
2
@@ -78,22 +78,22 @@ connection master;
insert into t1 values (1);
update t1 set x= 2 where x = 1;
connection slave;
-select * from t1;
+select * from t1 order by x;
x
2
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
-2
1
+2
connection master;
delete from t1;
connection slave;
-select * from t1;
+select * from t1 order by x;
x
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
-2
1
+2
# multi-update
connection master;
create or replace table t1 (x int) with system versioning;
@@ -102,20 +102,20 @@ insert into t1 values (1);
insert into t2 values (2);
update t1, t2 set t1.x=11, t2.x=22;
connection slave;
-select * from t1;
+select * from t1 order by x;
x
11
-select * from t2;
+select * from t2 order by x;
x
22
-select * from t1 for system_time all;
+select * from t1 for system_time all order by row_end, x;
x
-11
1
-select * from t2 for system_time all;
+11
+select * from t2 for system_time all order by row_end, x;
x
-22
2
+22
# MDEV-14767 system_versioning_alter_history breaks ALTER replication
## Case 1: KEEP on the master, ALTER will work on the slave
connection master;
diff --git a/mysql-test/suite/versioning/r/update,trx_id.rdiff b/mysql-test/suite/versioning/r/update,trx_id.rdiff
index 037ec548072..7ce75714235 100644
--- a/mysql-test/suite/versioning/r/update,trx_id.rdiff
+++ b/mysql-test/suite/versioning/r/update,trx_id.rdiff
@@ -1,13 +1,16 @@
---- suite/versioning/r/update.result
-+++ suite/versioning/r/update.reject
-@@ -88,10 +88,8 @@
- 5 3 1
- 3 1 0
+--- update.result 2018-12-19 13:55:35.873917389 +0300
++++ update,trx_id.reject 2018-12-19 13:55:35.533917399 +0300
+@@ -81,12 +81,10 @@
+ commit;
+ select x, y, sys_trx_end = MAXVAL as current from t1 for system_time all order by sys_trx_end, x, y;
+ x y current
+-3 1 0
2 1 0
-3 2 0
++3 1 0
4 1 0
5 1 0
-5 2 0
- drop table t1;
- create table t1 (
- id int primary key auto_increment,
+ 1 1 1
+ 2 2 1
+ 3 3 1
diff --git a/mysql-test/suite/versioning/r/update.result b/mysql-test/suite/versioning/r/update.result
index 8e42e7d413d..334d8d8899b 100644
--- a/mysql-test/suite/versioning/r/update.result
+++ b/mysql-test/suite/versioning/r/update.result
@@ -6,7 +6,7 @@ sys_trx_end SYS_DATATYPE as row end invisible,
period for system_time (sys_trx_start, sys_trx_end))
with system versioning;
insert into t1(x, y) values (1, 1000), (2, 2000), (3, 3000), (4, 4000), (5, 5000), (6, 6000), (7, 7000), (8, 8000), (9, 9000);
-select x, y from t1;
+select x, y from t1 order by x, y;
x y
1 1000
2 2000
@@ -18,7 +18,7 @@ x y
8 8000
9 9000
update t1 set y = y + 1 where x > 7;
-select x, y from t1;
+select x, y from t1 order by x, y;
x y
1 1000
2 2000
@@ -29,8 +29,10 @@ x y
7 7000
8 8001
9 9001
-select x, y from t1 for system_time all;
+select x, y from t1 for system_time all order by sys_trx_end, x, y;
x y
+8 8000
+9 9000
1 1000
2 2000
3 3000
@@ -40,8 +42,6 @@ x y
7 7000
8 8001
9 9001
-8 8000
-9 9000
drop table t1;
create table t1 (
id bigint primary key,
@@ -79,19 +79,19 @@ update t1 set y= y + 1 where x = 3;
update t1 set y= y + 1 where x > 3;
update t1 set y= y + 1 where x > 4;
commit;
-select x, y, sys_trx_end = MAXVAL as current from t1 for system_time all;
+select x, y, sys_trx_end = MAXVAL as current from t1 for system_time all order by sys_trx_end, x, y;
x y current
-1 1 1
-2 2 1
-3 3 1
-4 2 1
-5 3 1
3 1 0
2 1 0
3 2 0
4 1 0
5 1 0
5 2 0
+1 1 1
+2 2 1
+3 3 1
+4 2 1
+5 3 1
drop table t1;
create table t1 (
id int primary key auto_increment,
@@ -129,15 +129,15 @@ with system versioning;
insert into t1(x, y) values (1, 1000), (3, 3000), (4, 4000), (5, 5000);
insert into t1(x, y) values(3, 3000) on duplicate key update y = y+1;
insert into t1(x, y) values(4, 4444) on duplicate key update y = y+1;
-select x, y from t1 for system_time all;
+select x, y from t1 for system_time all order by sys_trx_end, x, y;
x y
-1 1000
3 3000
+1 1000
3 3001
4 4000
4 4444
5 5000
-select x, y from t1;
+select x, y from t1 order by x, y;
x y
1 1000
3 3001
@@ -156,8 +156,10 @@ create table t2 like t1;
insert into t1(x, y) values (1, 1000), (2, 2000), (3, 3000), (4, 4000), (5, 5000), (6, 6000), (7, 7000), (8, 8000), (9, 9000);
insert into t2(x, y) values (1, 1010), (2, 2010), (3, 3010), (4, 4010), (5, 5010), (6, 6010), (7, 7010), (8, 8010), (9, 9010);
update t1, t2 set t1.y = t1.x + t1.y, t2.y = t2.x + t2.y where t1.x > 7 and t2.x < 7;
-select x, y from t1 for system_time all;
+select x, y from t1 for system_time all order by sys_trx_end, x, y;
x y
+8 8000
+9 9000
1 1000
2 2000
3 3000
@@ -167,9 +169,7 @@ x y
7 7000
8 8008
9 9009
-8 8000
-9 9000
-select x, y from t1;
+select x, y from t1 order by x, y;
x y
1 1000
2 2000
@@ -180,8 +180,14 @@ x y
7 7000
8 8008
9 9009
-select x, y from t2 for system_time all;
+select x, y from t2 for system_time all order by sys_trx_end, x, y;
x y
+1 1010
+2 2010
+3 3010
+4 4010
+5 5010
+6 6010
1 1011
2 2012
3 3013
@@ -191,13 +197,7 @@ x y
7 7010
8 8010
9 9010
-1 1010
-2 2010
-3 3010
-4 4010
-5 5010
-6 6010
-select x, y from t2;
+select x, y from t2 order by x, y;
x y
1 1011
2 2012
diff --git a/mysql-test/suite/versioning/t/rpl.test b/mysql-test/suite/versioning/t/rpl.test
index a9e3af45af8..e59d41c38a3 100644
--- a/mysql-test/suite/versioning/t/rpl.test
+++ b/mysql-test/suite/versioning/t/rpl.test
@@ -14,24 +14,24 @@ let $slave_com_update_before= query_get_value(SHOW GLOBAL STATUS LIKE 'com_updat
connection master;
CREATE TABLE t1 (x int) with system versioning;
insert into t1 values (1);
-SELECT * FROM t1;
+select * from t1 order by x;
delete from t1;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
sync_slave_with_master;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
connection master;
insert into t1 values (2);
sync_slave_with_master;
-select * from t1;
+select * from t1 order by x;
connection master;
update t1 set x = 3;
sync_slave_with_master;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
--echo # check unversioned -> versioned replication
connection master;
@@ -42,20 +42,20 @@ alter table t1 with system versioning;
connection master;
insert into t1 values (1);
sync_slave_with_master;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
connection master;
update t1 set x= 2 where x = 1;
sync_slave_with_master;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
connection master;
delete from t1;
sync_slave_with_master;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
--echo # same thing (UPDATE, DELETE), but without PK
connection master;
@@ -67,14 +67,14 @@ connection master;
insert into t1 values (1);
update t1 set x= 2 where x = 1;
sync_slave_with_master;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
connection master;
delete from t1;
sync_slave_with_master;
-select * from t1;
-select * from t1 for system_time all;
+select * from t1 order by x;
+select * from t1 for system_time all order by row_end, x;
--echo # multi-update
connection master;
@@ -84,10 +84,10 @@ insert into t1 values (1);
insert into t2 values (2);
update t1, t2 set t1.x=11, t2.x=22;
sync_slave_with_master;
-select * from t1;
-select * from t2;
-select * from t1 for system_time all;
-select * from t2 for system_time all;
+select * from t1 order by x;
+select * from t2 order by x;
+select * from t1 for system_time all order by row_end, x;
+select * from t2 for system_time all order by row_end, x;
--echo # MDEV-14767 system_versioning_alter_history breaks ALTER replication
--echo ## Case 1: KEEP on the master, ALTER will work on the slave
diff --git a/mysql-test/suite/versioning/t/update.test b/mysql-test/suite/versioning/t/update.test
index 67d7db952ae..95c844c88a2 100644
--- a/mysql-test/suite/versioning/t/update.test
+++ b/mysql-test/suite/versioning/t/update.test
@@ -11,10 +11,10 @@ eval create table t1(
with system versioning;
insert into t1(x, y) values (1, 1000), (2, 2000), (3, 3000), (4, 4000), (5, 5000), (6, 6000), (7, 7000), (8, 8000), (9, 9000);
-select x, y from t1;
+select x, y from t1 order by x, y;
update t1 set y = y + 1 where x > 7;
-select x, y from t1;
-select x, y from t1 for system_time all;
+select x, y from t1 order by x, y;
+select x, y from t1 for system_time all order by sys_trx_end, x, y;
drop table t1;
replace_result $sys_datatype_expl SYS_DATATYPE;
@@ -56,7 +56,7 @@ update t1 set y= y + 1 where x > 4;
commit;
replace_result $sys_datatype_max MAXVAL;
-eval select x, y, sys_trx_end = $sys_datatype_max as current from t1 for system_time all;
+eval select x, y, sys_trx_end = $sys_datatype_max as current from t1 for system_time all order by sys_trx_end, x, y;
drop table t1;
@@ -95,8 +95,8 @@ with system versioning;
insert into t1(x, y) values (1, 1000), (3, 3000), (4, 4000), (5, 5000);
insert into t1(x, y) values(3, 3000) on duplicate key update y = y+1;
insert into t1(x, y) values(4, 4444) on duplicate key update y = y+1;
-select x, y from t1 for system_time all;
-select x, y from t1;
+select x, y from t1 for system_time all order by sys_trx_end, x, y;
+select x, y from t1 order by x, y;
drop table t1;
replace_result $sys_datatype_expl SYS_DATATYPE;
@@ -111,10 +111,10 @@ create table t2 like t1;
insert into t1(x, y) values (1, 1000), (2, 2000), (3, 3000), (4, 4000), (5, 5000), (6, 6000), (7, 7000), (8, 8000), (9, 9000);
insert into t2(x, y) values (1, 1010), (2, 2010), (3, 3010), (4, 4010), (5, 5010), (6, 6010), (7, 7010), (8, 8010), (9, 9010);
update t1, t2 set t1.y = t1.x + t1.y, t2.y = t2.x + t2.y where t1.x > 7 and t2.x < 7;
-select x, y from t1 for system_time all;
-select x, y from t1;
-select x, y from t2 for system_time all;
-select x, y from t2;
+select x, y from t1 for system_time all order by sys_trx_end, x, y;
+select x, y from t1 order by x, y;
+select x, y from t2 for system_time all order by sys_trx_end, x, y;
+select x, y from t2 order by x, y;
drop table t1;
drop table t2;