--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
