summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/versioning/r/rpl.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/versioning/r/rpl.result')
-rw-r--r--mysql-test/suite/versioning/r/rpl.result167
1 files changed, 167 insertions, 0 deletions
diff --git a/mysql-test/suite/versioning/r/rpl.result b/mysql-test/suite/versioning/r/rpl.result
new file mode 100644
index 00000000..627f3991
--- /dev/null
+++ b/mysql-test/suite/versioning/r/rpl.result
@@ -0,0 +1,167 @@
+include/master-slave.inc
+[connection master]
+connection slave;
+connection master;
+CREATE TABLE t1 (x int) with system versioning;
+insert into t1 values (1);
+select * from t1 order by x;
+x
+1
+delete from t1;
+select * from t1 order by x;
+x
+select * from t1 for system_time all order by row_end, x;
+x
+1
+connection slave;
+select * from t1 order by x;
+x
+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 order by x;
+x
+2
+connection master;
+update t1 set x = 3;
+connection slave;
+select * from t1 order by x;
+x
+3
+select * from t1 for system_time all order by row_end, x;
+x
+1
+2
+3
+# check unversioned -> versioned replication
+connection master;
+create or replace table t1 (x int primary key);
+connection slave;
+alter table t1 with system versioning;
+connection master;
+insert into t1 values (1);
+connection slave;
+select * from t1 order by x;
+x
+1
+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 order by x;
+x
+2
+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 order by x;
+x
+select * from t1 for system_time all order by row_end, x;
+x
+1
+2
+# same thing (UPDATE, DELETE), but without PK
+connection master;
+create or replace table t1 (x int);
+connection slave;
+alter table t1 with system versioning;
+connection master;
+insert into t1 values (1);
+update t1 set x= 2 where x = 1;
+connection slave;
+select * from t1 order by x;
+x
+2
+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 order by x;
+x
+select * from t1 for system_time all order by row_end, x;
+x
+1
+2
+# multi-update
+connection master;
+create or replace table t1 (x int) with system versioning;
+create or replace table t2 (x int) with system versioning;
+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 order by x;
+x
+11
+select * from t2 order by x;
+x
+22
+select * from t1 for system_time all order by row_end, x;
+x
+1
+11
+select * from t2 for system_time all order by row_end, x;
+x
+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;
+create or replace table t1 (a int) with system versioning;
+set system_versioning_alter_history= KEEP;
+alter table t1 add column b int;
+connection slave;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL
+) ENGINE=ENGINE DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
+## Case 2: ERROR on the master, it'll fail on the master, the slave won't see it
+connection master;
+set system_versioning_alter_history= ERROR;
+alter table t1 drop column b;
+ERROR HY000: Not allowed for system-versioned `test`.`t1`. Change @@system_versioning_alter_history to proceed with ALTER.
+connection slave;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL
+) ENGINE=ENGINE DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
+## Case 3: table is not versioned on the master, ALTER will work on the slave
+connection master;
+create or replace table t1 (a int);
+connection slave;
+create or replace table t1 (a int) with system versioning;
+connection master;
+alter table t1 add column b int;
+connection slave;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL
+) ENGINE=ENGINE DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
+connection master;
+drop table t1, t2;
+create table t1 (i int) with system versioning partition by system_time limit 8 ( partition p1 history, partition p2 history, partition pn current );
+insert into t1 values (1);
+update t1 set i = 1;
+update t1 set i = 0;
+connection slave;
+connection master;
+drop table t1;
+include/rpl_end.inc