source include/master-slave.inc; source include/have_innodb.inc; call mtr.add_suppression("Deadlock found"); --echo **** On Master **** connection master; SET SESSION BINLOG_FORMAT=ROW; CREATE TABLE t1 (a INT PRIMARY KEY, b INT); INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4); --echo **** On Slave **** sync_slave_with_master; SHOW STATUS LIKE 'Slave_retried_transactions'; # since bug#31552/31609 idempotency is not default any longer. In order # the following UPDATE t1 to pass the mode is switched temprorarily set @@global.slave_exec_mode= 'IDEMPOTENT'; UPDATE t1 SET a = 5, b = 47 WHERE a = 1; SELECT * FROM t1; --echo **** On Master **** connection master; UPDATE t1 SET a = 5, b = 5 WHERE a = 1; SELECT * FROM t1; #SHOW BINLOG EVENTS; --echo **** On Slave **** sync_slave_with_master; set @@global.slave_exec_mode= default; SHOW STATUS LIKE 'Slave_retried_transactions'; SELECT * FROM t1; source include/check_slave_is_running.inc; --echo **** On Master **** connection master; DROP TABLE t1; --sync_slave_with_master --connection master # BUG#Bug #53259 Unsafe statement binlogged in statement format w/MyIsam temp tables # SET SESSION BINLOG_FORMAT=MIXED; CREATE TABLE t_myisam (id INT, PRIMARY KEY (id)) engine= MyIsam; INSERT INTO t_myisam (id) VALUES(1); CREATE TABLE t_innodb (id INT) engine= Innodb; INSERT INTO t_innodb (id) VALUES(1); let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1); BEGIN; INSERT INTO t_innodb(id) VALUES(2); INSERT INTO t_myisam(id) VALUES(3); CREATE TEMPORARY TABLE x (id INT); --error 1062 INSERT INTO t_myisam(id) VALUES(4),(1); INSERT INTO t_innodb(id) VALUES(5); COMMIT; SELECT * FROM t_innodb; SELECT * FROM t_myisam; --sync_slave_with_master SELECT * FROM t_innodb; SELECT * FROM t_myisam; --connection master BEGIN; CREATE TEMPORARY TABLE tmp2 SELECT * FROM t_innodb; INSERT INTO t_innodb(id) VALUES(1); INSERT INTO t_innodb(id) VALUES(1); ROLLBACK; source include/show_binlog_events.inc; DROP TABLE t_myisam, t_innodb; --source include/rpl_end.inc