1SET @old_binlog_format=@@binlog_format; 2SET BINLOG_FORMAT=ROW; 3RESET MASTER; 4CREATE TABLE t1 (a INT) ENGINE=MyISAM; 5CREATE TABLE t2 (a INT) ENGINE=MyISAM; 6INSERT INTO t2 VALUES (1),(2),(3); 7**** Truncate of empty table shall be logged 8TRUNCATE TABLE t1; 9TRUNCATE TABLE t2; 10include/show_binlog_events.inc 11Log_name Pos Event_type Server_id End_log_pos Info 12master-bin.000001 # Gtid # # GTID #-#-# 13master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 14master-bin.000001 # Gtid # # GTID #-#-# 15master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 16DROP TABLE t1,t2; 17# 18# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE 19# 20CREATE TABLE t1 (a INT) ENGINE=MyISAM; 21CREATE TABLE t2 (a INT) ENGINE=MyISAM; 22INSERT INTO t1 VALUES (1),(2); 23BEGIN; 24INSERT INTO t2 SELECT * FROM t1; 25connect truncate,localhost,root,,; 26TRUNCATE TABLE t1; 27connection default; 28INSERT INTO t2 SELECT * FROM t1; 29SELECT COUNT(*) FROM t2; 30COUNT(*) 314 32COMMIT; 33connection truncate; 34# Reaping TRUNCATE TABLE 35SELECT COUNT(*) FROM t1; 36COUNT(*) 370 38SELECT COUNT(*) FROM t2; 39COUNT(*) 404 41connection default; 42include/show_binlog_events.inc 43Log_name Pos Event_type Server_id End_log_pos Info 44master-bin.000001 # Gtid # # BEGIN GTID #-#-# 45master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 46master-bin.000001 # Table_map # # table_id: # (test.t2) 47master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F 48master-bin.000001 # Query # # COMMIT 49master-bin.000001 # Gtid # # BEGIN GTID #-#-# 50master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 51master-bin.000001 # Table_map # # table_id: # (test.t2) 52master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F 53master-bin.000001 # Query # # COMMIT 54master-bin.000001 # Gtid # # GTID #-#-# 55master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 56disconnect truncate; 57DROP TABLE t1,t2; 58SET BINLOG_FORMAT=STATEMENT; 59RESET MASTER; 60CREATE TABLE t1 (a INT) ENGINE=MyISAM; 61CREATE TABLE t2 (a INT) ENGINE=MyISAM; 62INSERT INTO t2 VALUES (1),(2),(3); 63**** Truncate of empty table shall be logged 64TRUNCATE TABLE t1; 65TRUNCATE TABLE t2; 66include/show_binlog_events.inc 67Log_name Pos Event_type Server_id End_log_pos Info 68master-bin.000001 # Gtid # # GTID #-#-# 69master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 70master-bin.000001 # Gtid # # GTID #-#-# 71master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 72DROP TABLE t1,t2; 73# 74# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE 75# 76CREATE TABLE t1 (a INT) ENGINE=MyISAM; 77CREATE TABLE t2 (a INT) ENGINE=MyISAM; 78INSERT INTO t1 VALUES (1),(2); 79BEGIN; 80INSERT INTO t2 SELECT * FROM t1; 81connect truncate,localhost,root,,; 82TRUNCATE TABLE t1; 83connection default; 84INSERT INTO t2 SELECT * FROM t1; 85SELECT COUNT(*) FROM t2; 86COUNT(*) 874 88COMMIT; 89connection truncate; 90# Reaping TRUNCATE TABLE 91SELECT COUNT(*) FROM t1; 92COUNT(*) 930 94SELECT COUNT(*) FROM t2; 95COUNT(*) 964 97connection default; 98include/show_binlog_events.inc 99Log_name Pos Event_type Server_id End_log_pos Info 100master-bin.000001 # Gtid # # BEGIN GTID #-#-# 101master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 102master-bin.000001 # Query # # COMMIT 103master-bin.000001 # Gtid # # BEGIN GTID #-#-# 104master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 105master-bin.000001 # Query # # COMMIT 106master-bin.000001 # Gtid # # GTID #-#-# 107master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 108disconnect truncate; 109DROP TABLE t1,t2; 110SET BINLOG_FORMAT=@old_binlog_format; 111