mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
68 lines
1.6 KiB
Text
68 lines
1.6 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;
|
|
}
|
|
|
|
--echo # Connection: default
|
|
BEGIN;
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
|
|
connect (truncate,localhost,root,,);
|
|
--echo # Connection: truncate
|
|
send TRUNCATE TABLE t1;
|
|
|
|
connection default;
|
|
--echo # Connection: default
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
SELECT COUNT(*) FROM t2;
|
|
COMMIT;
|
|
|
|
connection truncate;
|
|
--echo # Connection: truncate
|
|
--echo # Reaping TRUNCATE TABLE
|
|
--reap
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT COUNT(*) FROM t2;
|
|
|
|
connection default;
|
|
--echo # Connection: default
|
|
|
|
source include/show_binlog_events.inc;
|
|
disconnect truncate;
|
|
DROP TABLE t1,t2;
|