diff options
Diffstat (limited to 'mysql-test/suite/s3/replication_delayed.test')
-rw-r--r-- | mysql-test/suite/s3/replication_delayed.test | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/mysql-test/suite/s3/replication_delayed.test b/mysql-test/suite/s3/replication_delayed.test new file mode 100644 index 00000000..0ae93b85 --- /dev/null +++ b/mysql-test/suite/s3/replication_delayed.test @@ -0,0 +1,115 @@ +--source include/have_s3.inc +--source include/have_innodb.inc +--source include/have_binlog_format_mixed.inc +--source include/master-slave.inc +--source include/have_sequence.inc + +# First clear the binlog +set binlog_format=mixed; +RESET MASTER; +connection slave; +set binlog_format=mixed; +RESET MASTER; +connection master; + +# +# Create unique database for running the tests +# +--source create_database.inc +sync_slave_with_master; +--replace_result $database database +--eval use $database +connection master; + +--echo # +--echo # MDEV-23691 S3 storage engine: delayed slave can drop the table +--echo # + +connection slave; +stop slave; +connection master; + +# +# Create version 1 of the table +# + +create /*or replace*/ table t100 ( + pk varchar(100) +) engine = 'innodb'; + +insert into t100 values ('old data'); +alter table t100 engine=s3; + +# +# Create version 2 of the table +# +drop table t100; +create /*or replace*/ table t100 ( + pk varchar(100) +) engine= innodb; +insert into t100 select 'new data' from seq_1_to_10; +alter table t100 engine=s3; + +select count(*), 'before slave start' from t100; + +# +# Now, start the slave +# +connection slave; +start slave; +connection master; +sync_slave_with_master; +#select count(*) from t100; +connection master; + +flush tables; +select count(*), 'after slave start' from t100; +show create table t100; + +connection slave; + +select count(*) from t100; + +connection master; + +drop table t100; + +--echo # +--echo # Test delayed slave with inserts +--echo # + + +# Stop slave + +connection slave; +stop slave; +connection master; + +# Create tables with data while slave is stopped +create table t1 (a int) engine=innodb; +insert into t1 values (1),(2),(3); +insert into t1 select * from seq_4_to_6; +alter table t1 engine=s3; + +connection slave; +start slave; +connection master; +sync_slave_with_master; +select * from t1; +connection master; +drop table t1; + +--echo # +--echo # Check slave binary log +--echo # + +sync_slave_with_master; +--let $binlog_database=$database +--source include/show_binlog_events.inc +connection master; + +--echo # +--echo # clean up +--echo # +--source drop_database.inc +--source include/rpl_end.inc |