diff options
Diffstat (limited to 'mysql-test/suite/binlog')
-rw-r--r-- | mysql-test/suite/binlog/r/binlog_concurrent_drop_create.result | 52 | ||||
-rw-r--r-- | mysql-test/suite/binlog/t/binlog_concurrent_drop_create.test | 85 |
2 files changed, 137 insertions, 0 deletions
diff --git a/mysql-test/suite/binlog/r/binlog_concurrent_drop_create.result b/mysql-test/suite/binlog/r/binlog_concurrent_drop_create.result new file mode 100644 index 00000000000..8db1dc4b75e --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_concurrent_drop_create.result @@ -0,0 +1,52 @@ +include/master-slave.inc +[connection master] +RESET MASTER; +DROP DATABASE IF EXISTS db_717; +DROP EVENT IF EXISTS test.e_x1; +set @saved_global_binlog_format = @@global.binlog_format; +set @saved_local_binlog_format = @@session.binlog_format; +SET GLOBAL BINLOG_FORMAT = STATEMENT; +SET SESSION BINLOG_FORMAT = STATEMENT; +CREATE DATABASE db_717; +CREATE FUNCTION db_717.f1() RETURNS INT RETURN 1; +DROP DATABASE db_717; +CREATE FUNCTION db_717.f2() RETURNS INT RETURN 1; +CREATE DATABASE db_717; +CREATE EVENT db_717.e_x1 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int); +DROP DATABASE db_717; +CREATE EVENT db_717.e_x2 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int); +CREATE DATABASE db_717; +CREATE EVENT test.e_x1 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int); +DROP DATABASE db_717; +ALTER EVENT test.e_x1 RENAME TO db_717.e_x2; +DROP EVENT test.e_x1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_717 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP EVENT IF EXISTS test.e_x1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE db_717 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION `db_717`.`f1`() RETURNS int(11) +RETURN 1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE db_717 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE db_717 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT db_717.e_x1 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE db_717 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE db_717 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT test.e_x1 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE db_717 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP EVENT test.e_x1 +SET GLOBAL BINLOG_FORMAT = @saved_global_binlog_format; +SET SESSION BINLOG_FORMAT = @saved_local_binlog_format; +include/rpl_end.inc diff --git a/mysql-test/suite/binlog/t/binlog_concurrent_drop_create.test b/mysql-test/suite/binlog/t/binlog_concurrent_drop_create.test new file mode 100644 index 00000000000..c885a7291f7 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_concurrent_drop_create.test @@ -0,0 +1,85 @@ +# MDEV-717 +# DROP DATABASE and CREATE PROCEDURE|FUNCTION|EVENT +# statements can appear in wrong order in the binlog. +# +# Note - the test can be undeterministic. + +--source include/master-slave.inc +RESET MASTER; + +--disable_warnings +DROP DATABASE IF EXISTS db_717; +DROP EVENT IF EXISTS test.e_x1; +--enable_warnings + +set @saved_global_binlog_format = @@global.binlog_format; +set @saved_local_binlog_format = @@session.binlog_format; +SET GLOBAL BINLOG_FORMAT = STATEMENT; +SET SESSION BINLOG_FORMAT = STATEMENT; + +# test function creation +CREATE DATABASE db_717; + +CREATE FUNCTION db_717.f1() RETURNS INT RETURN 1; + +--send + +DROP DATABASE db_717; + +--connection master1 + +--error 0,ER_BAD_DB_ERROR + +CREATE FUNCTION db_717.f2() RETURNS INT RETURN 1; + +--connection master + +--reap + +# test event creation +CREATE DATABASE db_717; + +CREATE EVENT db_717.e_x1 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int); + +--send + +DROP DATABASE db_717; + +--connection master1 + +--error 0,ER_BAD_DB_ERROR + +CREATE EVENT db_717.e_x2 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int); + +--connection master + +--reap + +# test event modification +CREATE DATABASE db_717; + +CREATE EVENT test.e_x1 ON SCHEDULE EVERY 1000 HOUR DO CREATE TABLE t1(id int); + +--send + +DROP DATABASE db_717; + +--connection master1 + +--error 0,ER_BAD_DB_ERROR + +ALTER EVENT test.e_x1 RENAME TO db_717.e_x2; + +--connection master + +--reap + +DROP EVENT test.e_x1; + +source include/show_binlog_events.inc; + +SET GLOBAL BINLOG_FORMAT = @saved_global_binlog_format; +SET SESSION BINLOG_FORMAT = @saved_local_binlog_format; + +--source include/rpl_end.inc + |