mirror of
https://github.com/MariaDB/server.git
synced 2026-05-06 23:25:34 +02:00
Bug#19066 (DELETE FROM inconsistency for NDB):
Under row-based replication, DELETE FROM will now always be replicated as individual row deletions, while TRUNCATE TABLE will always be replicated as a statement.
This commit is contained in:
parent
aa47bfa986
commit
321d9d842f
38 changed files with 865 additions and 214 deletions
|
|
@ -228,15 +228,11 @@ let $my_master_commit= true;
|
|||
let $my_slave_commit= true;
|
||||
--source include/rpl_stmt_seq.inc
|
||||
SELECT * FROM mysqltest1.t7;
|
||||
connection slave;
|
||||
--disable_query_log
|
||||
SELECT '-------- switch to slave --------' as "";
|
||||
--enable_query_log
|
||||
--echo -------- switch to slave --------
|
||||
sync_slave_with_master;
|
||||
SELECT * FROM mysqltest1.t7;
|
||||
--echo -------- switch to master -------
|
||||
connection master;
|
||||
--disable_query_log
|
||||
SELECT '-------- switch to master -------' as "";
|
||||
--enable_query_log
|
||||
|
||||
###############################################################
|
||||
# Cases with LOCK/UNLOCK
|
||||
|
|
|
|||
36
mysql-test/extra/rpl_tests/rpl_truncate.test
Normal file
36
mysql-test/extra/rpl_tests/rpl_truncate.test
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
#
|
||||
# Copyright 2006 MySQL. All rights reserved.
|
||||
#
|
||||
# Test to check for the different version of truncating a table.
|
||||
# The statements are "TRUNCATE tbl" and "DELETE FROM tbl". We check
|
||||
# the behaviour of each possible value for BINLOG_FORMAT.
|
||||
#
|
||||
# Author(s): Mats Kindahl
|
||||
|
||||
--source include/have_row_based.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
let $format = STATEMENT;
|
||||
let $stmt = TRUNCATE TABLE;
|
||||
--source extra/rpl_tests/rpl_truncate_helper.inc
|
||||
|
||||
let $format = MIXED;
|
||||
let $stmt = TRUNCATE TABLE;
|
||||
--source extra/rpl_tests/rpl_truncate_helper.inc
|
||||
|
||||
let $format = ROW;
|
||||
let $stmt = TRUNCATE TABLE;
|
||||
--source extra/rpl_tests/rpl_truncate_helper.inc
|
||||
|
||||
let $format = STATEMENT;
|
||||
let $stmt = DELETE FROM;
|
||||
--source extra/rpl_tests/rpl_truncate_helper.inc
|
||||
|
||||
let $format = MIXED;
|
||||
let $stmt = DELETE FROM;
|
||||
--source extra/rpl_tests/rpl_truncate_helper.inc
|
||||
|
||||
let $format = ROW;
|
||||
let $stmt = DELETE FROM;
|
||||
--source extra/rpl_tests/rpl_truncate_helper.inc
|
||||
|
||||
40
mysql-test/extra/rpl_tests/rpl_truncate_helper.inc
Normal file
40
mysql-test/extra/rpl_tests/rpl_truncate_helper.inc
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
connection slave;
|
||||
STOP SLAVE;
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
RESET MASTER;
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
RESET SLAVE;
|
||||
START SLAVE;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
eval SET SESSION BINLOG_FORMAT=$format;
|
||||
eval SET GLOBAL BINLOG_FORMAT=$format;
|
||||
|
||||
eval CREATE TABLE t1 (a INT, b LONG) ENGINE=$engine;
|
||||
INSERT INTO t1 VALUES (1,1), (2,2);
|
||||
SELECT * FROM t1;
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
INSERT INTO t1 VALUE (3,3);
|
||||
SELECT * FROM t1;
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
eval $stmt t1;
|
||||
SELECT * FROM t1;
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
# Should be empty
|
||||
SELECT * FROM t1;
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
SHOW BINLOG EVENTS;
|
||||
Loading…
Add table
Add a link
Reference in a new issue