include/master-slave.inc [connection master] set binlog_format=mixed; RESET MASTER; connection slave; set binlog_format=mixed; RESET MASTER; connection master; connection slave; use database; connection master; # # MDEV-23691 S3 storage engine: delayed slave can drop the table # connection slave; stop slave; connection master; create /*or replace*/ table t100 ( pk varchar(100) ) engine = 'innodb'; insert into t100 values ('old data'); alter table t100 engine=s3; 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; count(*) before slave start 10 before slave start connection slave; start slave; connection master; connection slave; connection master; flush tables; select count(*), 'after slave start' from t100; count(*) after slave start 10 after slave start show create table t100; Table Create Table t100 CREATE TABLE `t100` ( `pk` varchar(100) DEFAULT NULL ) ENGINE=S3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1 connection slave; select count(*) from t100; count(*) 10 connection master; drop table t100; # # Test delayed slave with inserts # connection slave; stop slave; connection master; 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; connection slave; select * from t1; a 1 2 3 4 5 6 connection master; drop table t1; # # Check slave binary log # connection slave; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # create database database slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; create /*or replace*/ table t100 ( pk varchar(100) ) engine = 'innodb' slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `database`; insert into t100 values ('old data') slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; alter table t100 engine=s3 slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; DROP TABLE IF EXISTS `t100` /* generated by server */ slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; create /*or replace*/ table t100 ( pk varchar(100) ) engine= innodb slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `database`; insert into t100 select 'new data' from seq_1_to_10 slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; alter table t100 engine=s3 slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; flush tables slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; DROP TABLE IF EXISTS `t100` /* generated by server */ slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; create table t1 (a int) engine=innodb slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `database`; insert into t1 values (1),(2),(3) slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `database`; insert into t1 select * from seq_4_to_6 slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; alter table t1 engine=s3 slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `database`; DROP TABLE IF EXISTS `t1` /* generated by server */ connection master; # # clean up # include/rpl_end.inc