mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 12:56:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# BUG #36763: TRUNCATE TABLE fails to replicate when stmt-based
 | 
						|
# binlogging is not supported.
 | 
						|
 | 
						|
# This should always be logged as a statement, even when executed as a
 | 
						|
# row-by-row deletion.
 | 
						|
 | 
						|
# $before_truncate    A statement to execute (just) before issuing the
 | 
						|
#                     TRUNCATE TABLE
 | 
						|
 | 
						|
 | 
						|
eval CREATE TABLE t1 (a INT) ENGINE=$engine;
 | 
						|
eval CREATE TABLE t2 (a INT) ENGINE=$engine;
 | 
						|
INSERT INTO t2 VALUES (1),(2),(3);
 | 
						|
let $binlog_start = query_get_value("SHOW MASTER STATUS", Position, 1);
 | 
						|
if ($before_truncate) {
 | 
						|
  eval $before_truncate;
 | 
						|
}
 | 
						|
--echo **** Truncate of empty table shall be logged
 | 
						|
TRUNCATE TABLE t1;
 | 
						|
 | 
						|
if ($before_truncate) {
 | 
						|
  eval $before_truncate;
 | 
						|
}
 | 
						|
TRUNCATE TABLE t2;
 | 
						|
source include/show_binlog_events.inc;
 | 
						|
 | 
						|
DROP TABLE t1,t2;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
 | 
						|
--echo #
 | 
						|
 | 
						|
eval CREATE TABLE t1 (a INT) ENGINE=$engine;
 | 
						|
eval CREATE TABLE t2 (a INT) ENGINE=$engine;
 | 
						|
INSERT INTO t1 VALUES (1),(2);
 | 
						|
 | 
						|
let $binlog_start = query_get_value("SHOW MASTER STATUS", Position, 1);
 | 
						|
if ($before_truncate) {
 | 
						|
  eval $before_truncate;
 | 
						|
}
 | 
						|
 | 
						|
BEGIN;
 | 
						|
INSERT INTO t2 SELECT * FROM t1;
 | 
						|
 | 
						|
connect (truncate,localhost,root,,);
 | 
						|
send TRUNCATE TABLE t1;
 | 
						|
 | 
						|
connection default;
 | 
						|
INSERT INTO t2 SELECT * FROM t1;
 | 
						|
SELECT COUNT(*) FROM t2;
 | 
						|
COMMIT;
 | 
						|
 | 
						|
connection truncate;
 | 
						|
--echo # Reaping TRUNCATE TABLE
 | 
						|
--reap
 | 
						|
SELECT COUNT(*) FROM t1;
 | 
						|
SELECT COUNT(*) FROM t2;
 | 
						|
 | 
						|
connection default;
 | 
						|
 | 
						|
source include/show_binlog_events.inc;
 | 
						|
disconnect truncate;
 | 
						|
DROP TABLE t1,t2;
 |