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