include/master-slave.inc [connection master] *** Preparing data *** connection master; CREATE TABLE t1 (a INT NOT NULL, b VARCHAR(10)) ENGINE=MyISAM; CREATE TABLE t2 LIKE t1; CREATE TABLE t3 LIKE t1; CREATE TRIGGER tr1 BEFORE UPDATE ON t1 FOR EACH ROW BEGIN UPDATE t2 SET b='YY' WHERE a=NEW.a; END| CREATE TRIGGER tr2 AFTER UPDATE ON t1 FOR EACH ROW BEGIN UPDATE t3 SET b='ZZ' WHERE a=NEW.a; END| *** Test non-transactional group w/o PK *** connection master; INSERT INTO t3 VALUES(1, 'AA'); INSERT INTO t2 VALUES(1, 'AA'); INSERT INTO t1 VALUES(1, 'AA'); connection slave; RENAME TABLE t3 TO t3_bak; connection master; UPDATE t1 SET b = 'XX' WHERE a = 1; SELECT * FROM t1 ORDER BY a; a b 1 XX SELECT * FROM t2 ORDER BY a; a b 1 YY SELECT * FROM t3 ORDER BY a; a b 1 ZZ connection slave; call mtr.add_suppression("Slave SQL.*Table .test.t3. doesn.t exist.* error.* 1146"); call mtr.add_suppression("At line *"); include/wait_for_slave_sql_error.inc [errno=1146] SHOW TABLES LIKE 't%'; Tables_in_test (t%) t1 t2 t3_bak SELECT * FROM t1 ORDER BY a; a b 1 AA_for_row_or_XX_for_stmt_mixed SELECT * FROM t2 ORDER BY a; a b 1 AA_for_row_or_YY_for_stmt_mixed include/stop_slave_io.inc RENAME TABLE t3_bak TO t3; include/start_slave.inc connection master; TRUNCATE t1; TRUNCATE t2; TRUNCATE t3; connection slave; *** Test non-transactional group w/ PK *** connection master; ALTER TABLE t1 ADD PRIMARY KEY (a); ALTER TABLE t2 ADD PRIMARY KEY (a); ALTER TABLE t3 ADD PRIMARY KEY (a); connection slave; RENAME TABLE t3 TO t3_bak; connection master; INSERT INTO t3 VALUES(2, 'B'); INSERT INTO t2 VALUES(2, 'B'); INSERT INTO t1 VALUES(2, 'B'); UPDATE t1 SET b = 'X' WHERE a = 2; connection slave; include/wait_for_slave_sql_error.inc [errno=1146] connection master; SELECT * FROM t1 ORDER BY a; a b 2 X SELECT * FROM t2 ORDER BY a; a b 2 YY SELECT * FROM t3 ORDER BY a; a b 2 ZZ connection slave; SHOW TABLES LIKE 't%'; Tables_in_test (t%) t1 t2 t3_bak SELECT * FROM t1 ORDER BY a; a b SELECT * FROM t2 ORDER BY a; a b include/stop_slave_io.inc RENAME TABLE t3_bak TO t3; include/start_slave.inc connection master; TRUNCATE t1; TRUNCATE t2; TRUNCATE t3; connection slave; *** Test transactional group w/ PK *** connection master; ALTER TABLE t1 ENGINE=InnoDB; ALTER TABLE t2 ENGINE=InnoDB; ALTER TABLE t3 ENGINE=InnoDB; connection slave; RENAME TABLE t3 TO t3_bak; connection master; BEGIN; INSERT INTO t1 VALUES (3, 'C'), (4, 'D'); INSERT INTO t2 VALUES (3, 'C'), (4, 'D'); INSERT INTO t3 VALUES (3, 'C'), (4, 'D'); COMMIT; connection slave; include/wait_for_slave_sql_error.inc [errno=1146] connection master; SELECT * FROM t1 ORDER BY a; a b 3 C 4 D SELECT * FROM t2 ORDER BY a; a b 3 C 4 D SELECT * FROM t3 ORDER BY a; a b 3 C 4 D connection slave; SHOW TABLES LIKE 't%'; Tables_in_test (t%) t1 t2 t3_bak SELECT * FROM t1 ORDER BY a; a b SELECT * FROM t2 ORDER BY a; a b include/stop_slave_io.inc RENAME TABLE t3_bak TO t3; include/start_slave.inc *** Clean up *** connection master; DROP TABLE t1,t2,t3; connection slave; include/rpl_end.inc