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