mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			438 lines
		
	
	
	
		
			14 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			438 lines
		
	
	
	
		
			14 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| SET @old_binlog_format=@@binlog_format;
 | |
| SET BINLOG_FORMAT=ROW;
 | |
| RESET MASTER;
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| # Even though the isolation level might be permissive, truncate
 | |
| # table follows a stricter isolation as its locking is based on
 | |
| # (exclusive) metadata locks.
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Annotate_rows	#	#	INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
 | |
| master-bin.000001	#	Write_rows_v1	#	#	table_id: # flags: STMT_END_F
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| SET BINLOG_FORMAT=STATEMENT;
 | |
| RESET MASTER;
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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 t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| # Truncate is not supported for SBR if the isolation level is
 | |
| # READ UNCOMMITTED or READ COMMITTED. These specific isolation
 | |
| # levels are tested elsewhere.
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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 t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t2 VALUES (1),(2),(3);
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| **** Truncate of empty table shall be logged
 | |
| TRUNCATE TABLE t1;
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| TRUNCATE TABLE t2;
 | |
| 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`; TRUNCATE TABLE t1
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t2
 | |
| DROP TABLE t1,t2;
 | |
| #
 | |
| # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | |
| #
 | |
| CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 | |
| CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1),(2);
 | |
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 | |
| BEGIN;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| connect  truncate,localhost,root,,;
 | |
| TRUNCATE TABLE t1;
 | |
| connection default;
 | |
| INSERT INTO t2 SELECT * FROM t1;
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| COMMIT;
 | |
| connection truncate;
 | |
| # Reaping TRUNCATE TABLE
 | |
| SELECT COUNT(*) FROM t1;
 | |
| COUNT(*)
 | |
| 0
 | |
| SELECT COUNT(*) FROM t2;
 | |
| COUNT(*)
 | |
| 4
 | |
| connection default;
 | |
| 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 t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t2 SELECT * FROM t1
 | |
| master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
 | |
| disconnect truncate;
 | |
| DROP TABLE t1,t2;
 | |
| SET @@global.binlog_format = @old_binlog_format;
 | |
| SET @@session.binlog_format = @old_binlog_format;
 | 
