connect addconroot1, localhost, root,,; connect addconroot2, localhost, root,,; connect addconroot3, localhost, root,,; connection default; drop table if exists t1,t2,t3,t4,t5; set debug_sync='RESET'; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; create table t1 (j char(5));; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; ERROR 42S01: Table 't1' already exists connection default; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; create table t1 select 'Test' as j;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; ERROR 42S01: Table 't1' already exists connection default; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t3 (j char(5)); set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; create table t1 like t3;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; ERROR 42S01: Table 't1' already exists connection default; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; rename table t3 to t1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; ERROR 42S01: Table 't1' already exists connection default; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; alter table t3 rename to t1; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; ERROR 42S01: Table 't1' already exists connection default; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; alter table t3 rename to t1, add k int; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; ERROR 42S01: Table 't1' already exists connection default; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1,t3; set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go'; connection default; set debug_sync='create_table_select_before_open SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; drop table t1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; rename table t1 to t2;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; drop table t2; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; select * from t1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; i 1 connection default; drop table t1; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; insert into t1 values (2);; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; select * from t1; i 1 2 drop table t1; set @a:=0; set debug_sync='create_table_select_before_create SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; create trigger t1_bi before insert on t1 for each row set @a:=1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; select @a; @a 0 drop table t1; set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; drop table t1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; rename table t1 to t2;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; drop table t2; set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; select * from t1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; i 1 connection default; drop table t1; set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; insert into t1 values (2);; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; select * from t1; i 1 2 drop table t1; set @a:=0; set debug_sync='create_table_select_before_lock SIGNAL parked WAIT_FOR go'; create table t1 select 1 as i;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; create trigger t1_bi before insert on t1 for each row set @a:=1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; select @a; @a 0 drop table t1; set debug_sync='create_table_before_check_if_exists SIGNAL parked WAIT_FOR go'; create table if not exists t1 select 1 as i; connection addconroot1; set debug_sync='now WAIT_FOR parked'; drop table t1; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; create table t1 (i int); set @a:=0; set debug_sync='create_table_before_check_if_exists SIGNAL parked WAIT_FOR go'; create table if not exists t1 select 1 as i; connection addconroot1; set debug_sync='now WAIT_FOR parked'; create trigger t1_bi before insert on t1 for each row set @a:=1; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; Warnings: Note 1050 Table 't1' already exists connection addconroot1; connection default; select @a; @a 0 select * from t1; i drop table t1; drop table if exists t1,t2; set debug_sync='RESET'; create table t1 (i int); set debug_sync='create_table_like_after_open SIGNAL parked WAIT_FOR go'; reset master; create table t2 like t1;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; insert into t1 values (1); drop table t1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `i` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; insert into t1 values (1) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t2 like t1 master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ create table t1 (i int); set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; reset master; create table t2 like t1;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; insert into t2 values (1);; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; drop table t2; set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; create table t2 like t1;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; drop table t2;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; set debug_sync='create_table_like_before_binlog SIGNAL parked WAIT_FOR go'; create table t2 like t1;; connection addconroot1; set debug_sync='now WAIT_FOR parked'; drop table t1;; connection addconroot2; set debug_sync='now SIGNAL go'; connection default; connection addconroot1; connection default; drop table t2; disconnect addconroot1; disconnect addconroot2; disconnect addconroot3; set debug_sync='RESET'; 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 # # use `test`; create table t2 like t1 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; insert into t2 values (1) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t2 like t1 master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t2 like t1 master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */