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