1include/master-slave.inc 2[connection master] 3connection master; 4set @old_master_binlog_checksum= @@global.binlog_checksum; 5connection slave; 6include/stop_slave.inc 7# Test slave with no capability gets dummy event, which is ignored. 8set @old_dbug= @@global.debug_dbug; 9SET @@global.debug_dbug='+d,simulate_slave_capability_none'; 10include/start_slave.inc 11connection master; 12FLUSH LOGS; 13CREATE TABLE t1 (a INT PRIMARY KEY); 14INSERT INTO t1 VALUES (0); 15connection slave; 16connection master; 17ALTER TABLE t1 ORDER BY a; 18connection slave; 19connection slave; 20connection master; 21SET SESSION binlog_annotate_row_events = ON; 22DELETE FROM t1; 23INSERT INTO t1 /* A comment just to make the annotate event sufficiently long that the dummy event will need to get padded with spaces so that we can test that this works */ VALUES(1); 24include/show_binlog_events.inc 25Log_name Pos Event_type Server_id End_log_pos Info 26master-bin.000002 # Gtid # # BEGIN GTID #-#-# 27master-bin.000002 # Annotate_rows # # DELETE FROM t1 28master-bin.000002 # Table_map # # table_id: # (test.t1) 29master-bin.000002 # Delete_rows_v1 # # table_id: # flags: STMT_END_F 30master-bin.000002 # Query # # COMMIT 31master-bin.000002 # Gtid # # BEGIN GTID #-#-# 32master-bin.000002 # Annotate_rows # # INSERT INTO t1 /* A comment just to make the annotate event sufficiently long that the dummy event will need to get padded with spaces so that we can test that this works */ VALUES(1) 33master-bin.000002 # Table_map # # table_id: # (test.t1) 34master-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F 35master-bin.000002 # Query # # COMMIT 36connection slave; 37connection slave; 38SELECT * FROM t1; 39a 401 41include/show_events.inc 42Log_name Pos Event_type Server_id End_log_pos Info 43slave-relay-bin.000005 # Query # # BEGIN 44slave-relay-bin.000005 # Annotate_rows # # DELETE FROM t1 45slave-relay-bin.000005 # Table_map # # table_id: # (test.t1) 46slave-relay-bin.000005 # Delete_rows_v1 # # table_id: # flags: STMT_END_F 47slave-relay-bin.000005 # Query # # COMMIT 48slave-relay-bin.000005 # Query # # BEGIN 49slave-relay-bin.000005 # Annotate_rows # # INSERT INTO t1 /* A comment just to make the annotate event sufficiently long that the dummy event will need to get padded with spaces so that we can test that this works */ VALUES(1) 50slave-relay-bin.000005 # Table_map # # table_id: # (test.t1) 51slave-relay-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F 52slave-relay-bin.000005 # Query # # COMMIT 53set @@global.debug_dbug= @old_dbug; 54# Test dummy event is checksummed correctly. 55connection master; 56set @@global.binlog_checksum = CRC32; 57TRUNCATE t1; 58INSERT INTO t1 VALUES(2); 59include/show_binlog_events.inc 60Log_name Pos Event_type Server_id End_log_pos Info 61master-bin.000003 # Gtid # # BEGIN GTID #-#-# 62master-bin.000003 # Annotate_rows # # INSERT INTO t1 VALUES(2) 63master-bin.000003 # Table_map # # table_id: # (test.t1) 64master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F 65master-bin.000003 # Query # # COMMIT 66connection slave; 67connection slave; 68SELECT * FROM t1; 69a 702 71include/show_events.inc 72Log_name Pos Event_type Server_id End_log_pos Info 73slave-relay-bin.000007 # Query # # BEGIN 74slave-relay-bin.000007 # Annotate_rows # # INSERT INTO t1 VALUES(2) 75slave-relay-bin.000007 # Table_map # # table_id: # (test.t1) 76slave-relay-bin.000007 # Write_rows_v1 # # table_id: # flags: STMT_END_F 77slave-relay-bin.000007 # Query # # COMMIT 78*** MDEV-5754: MySQL 5.5 slaves cannot replicate from MariaDB 10.0 *** 79connection master; 80CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB; 81connect con1,127.0.0.1,root,,test,$SERVER_MYPORT_1,; 82SET debug_sync='commit_after_release_LOCK_prepare_ordered SIGNAL master_queued1 WAIT_FOR master_cont1'; 83INSERT INTO t2 VALUES (1); 84connection master; 85SET debug_sync='now WAIT_FOR master_queued1'; 86connect con2,127.0.0.1,root,,test,$SERVER_MYPORT_1,; 87SET debug_sync='commit_after_release_LOCK_prepare_ordered SIGNAL master_queued2'; 88INSERT INTO t2 VALUES (2); 89connection master; 90SET debug_sync='now WAIT_FOR master_queued2'; 91SET debug_sync='now SIGNAL master_cont1'; 92connection con1; 93SET debug_sync='RESET'; 94connection con2; 95SET debug_sync='RESET'; 96connection master; 97SET debug_sync='RESET'; 98include/show_binlog_events.inc 99Log_name Pos Event_type Server_id End_log_pos Info 100master-bin.000003 # Gtid # # BEGIN GTID #-#-# cid=# 101master-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (1) 102master-bin.000003 # Table_map # # table_id: # (test.t2) 103master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F 104master-bin.000003 # Xid # # COMMIT /* XID */ 105master-bin.000003 # Gtid # # BEGIN GTID #-#-# cid=# 106master-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (2) 107master-bin.000003 # Table_map # # table_id: # (test.t2) 108master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F 109master-bin.000003 # Xid # # COMMIT /* XID */ 110connection slave; 111SELECT * FROM t2 ORDER BY a; 112a 1131 1142 115# Test that slave which cannot tolerate holes in binlog stream but 116# knows the event does not get dummy event 117include/stop_slave.inc 118SET @@global.debug_dbug='+d,simulate_slave_capability_old_53'; 119include/start_slave.inc 120connection master; 121ALTER TABLE t1 ORDER BY a; 122connection slave; 123connection slave; 124connection master; 125UPDATE t1 SET a = 3; 126include/show_binlog_events.inc 127Log_name Pos Event_type Server_id End_log_pos Info 128master-bin.000003 # Gtid # # BEGIN GTID #-#-# 129master-bin.000003 # Annotate_rows # # UPDATE t1 SET a = 3 130master-bin.000003 # Table_map # # table_id: # (test.t1) 131master-bin.000003 # Update_rows_v1 # # table_id: # flags: STMT_END_F 132master-bin.000003 # Query # # COMMIT 133connection slave; 134connection slave; 135SELECT * FROM t1; 136a 1373 138include/show_events.inc 139Log_name Pos Event_type Server_id End_log_pos Info 140slave-relay-bin.000008 # Query # # BEGIN 141slave-relay-bin.000008 # Annotate_rows # # UPDATE t1 SET a = 3 142slave-relay-bin.000008 # Table_map # # table_id: # (test.t1) 143slave-relay-bin.000008 # Update_rows_v1 # # table_id: # flags: STMT_END_F 144slave-relay-bin.000008 # Query # # COMMIT 145select @@global.log_slave_updates; 146@@global.log_slave_updates 1471 148select @@global.replicate_annotate_row_events; 149@@global.replicate_annotate_row_events 1501 151Clean up. 152connection master; 153set @@global.binlog_checksum = @old_master_binlog_checksum; 154DROP TABLE t1, t2; 155connection slave; 156set @@global.debug_dbug= @old_dbug; 157include/rpl_end.inc 158