1include/master-slave.inc
2[connection master]
3*** Test 1 ********************************************************
4* test native NDB$OLD() conflict resolution
5* test with both allowed "conflict column" types, uint32 and uint64
6*******************************************************************
7insert into mysql.ndb_replication values ("test", "t1", 0, NULL, "NDB$OLD(X)");
8create table t1 (a int, b varchar(32), X int unsigned, d varchar(9), primary key (a, d)) engine ndb;
9create table t2 (a int key, b varchar(32), c int unsigned, d varchar(9)) engine ndb;
10************************************************
11* some basic positive testing, i.e. no conflicts
12************************************************
13*** insert some data
14begin;
15insert into t1 values (1, "Master t1 a=1 at X=1", 1, '1');
16insert into t1 values (2, "Master t1 a=2 at X=1", 1, '12');
17insert into t1 values (3, "Master t1 a=3 at X=1", 1, '123');
18insert into t2 values (1, "Master t2 a=1 at c=1", 1, '1');
19insert into t2 values (2, "Master t2 a=2 at c=1", 1, '12');
20insert into t2 values (3, "Master t2 a=3 at c=1", 1, '123');
21commit;
22*** master - update all
23begin;
24update t1 set b="Master t1 X=2", X=X+1;
25update t2 set b="Master t2 c=2", c=c+1;
26commit;
27*** slave - check update all
28select * from t1 order by a, d;
29a	b	X	d
301	Master t1 X=2	2	1
312	Master t1 X=2	2	12
323	Master t1 X=2	2	123
33select * from t2 order by a, d;
34a	b	c	d
351	Master t2 c=2	2	1
362	Master t2 c=2	2	12
373	Master t2 c=2	2	123
38SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
39VARIABLE_VALUE-@init_ndb_conflict_fn_max
400
41SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
42VARIABLE_VALUE-@init_ndb_conflict_fn_old
430
44SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
45VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
460
47SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
48VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
490
50SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
51server_id	master_server_id	master_epoch	count	a	d
52SELECT * FROM `t1$EX` ORDER BY a, d;
53server_id	master_server_id	master_epoch	count	a	d
54SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
55SELECT * FROM `t2$EX` ORDER BY a, d;
56*** master - update 2 rows in different tables
57update t1 set b="Master t1 a=2 at X=3", X=X+1 where a=2;
58update t2 set b="Master t2 a=3 at c=3", c=c+1 where a=3;
59*** slave - check update 2 rows in different tables
60select * from t1 order by a, d;
61a	b	X	d
621	Master t1 X=2	2	1
632	Master t1 a=2 at X=3	3	12
643	Master t1 X=2	2	123
65select * from t2 order by a, d;
66a	b	c	d
671	Master t2 c=2	2	1
682	Master t2 c=2	2	12
693	Master t2 a=3 at c=3	3	123
70SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
71VARIABLE_VALUE-@init_ndb_conflict_fn_max
720
73SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
74VARIABLE_VALUE-@init_ndb_conflict_fn_old
750
76SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
77VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
780
79SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
80VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
810
82SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
83server_id	master_server_id	master_epoch	count	a	d
84SELECT * FROM `t1$EX` ORDER BY a, d;
85server_id	master_server_id	master_epoch	count	a	d
86SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
87SELECT * FROM `t2$EX` ORDER BY a, d;
88*** master - delete all
89delete from t1;
90delete from t2;
91*** slave - check delete all
92select * from t1 order by a, d;
93a	b	X	d
94select * from t2 order by a, d;
95a	b	c	d
96SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
97VARIABLE_VALUE-@init_ndb_conflict_fn_max
980
99SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
100VARIABLE_VALUE-@init_ndb_conflict_fn_old
1010
102SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
103VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
1040
105SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
106VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
1070
108SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
109server_id	master_server_id	master_epoch	count	a	d
110SELECT * FROM `t1$EX` ORDER BY a, d;
111server_id	master_server_id	master_epoch	count	a	d
112SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
113SELECT * FROM `t2$EX` ORDER BY a, d;
114************************
115* start conflict testing
116************************
117*** master - insert some data
118begin;
119insert into t1 values (1, "Master t1 a=1 at X=10", 10, '111');
120insert into t1 values (2, "Master t1 a=2 at X=10", 10, '111222');
121insert into t1 values (3, "Master t1 a=3 at X=10", 10, '111222333');
122insert into t1 values (4, "Master t1 a=4 at X=10", 10, '111222333');
123insert into t2 values (1, "Master t2 a=1 at c=10", 10, '111');
124insert into t2 values (2, "Master t2 a=2 at c=10", 10, '111222');
125insert into t2 values (3, "Master t2 a=3 at c=10", 10, '111222333');
126insert into t2 values (4, "Master t2 a=4 at c=10", 10, '111222333');
127commit;
128*** slave - check conflict info, no conflicts yet
129SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
130VARIABLE_VALUE-@init_ndb_conflict_fn_max
1310
132SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
133VARIABLE_VALUE-@init_ndb_conflict_fn_old
1340
135SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
136VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
1370
138SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
139VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
1400
141SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
142server_id	master_server_id	master_epoch	count	a	d
143SELECT * FROM `t1$EX` ORDER BY a, d;
144server_id	master_server_id	master_epoch	count	a	d
145SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
146SELECT * FROM `t2$EX` ORDER BY a, d;
147*** slave - check insert some data
148select * from t1 order by a, d;
149a	b	X	d
1501	Master t1 a=1 at X=10	10	111
1512	Master t1 a=2 at X=10	10	111222
1523	Master t1 a=3 at X=10	10	111222333
1534	Master t1 a=4 at X=10	10	111222333
154select * from t2 order by a, d;
155a	b	c	d
1561	Master t2 a=1 at c=10	10	111
1572	Master t2 a=2 at c=10	10	111222
1583	Master t2 a=3 at c=10	10	111222333
1594	Master t2 a=4 at c=10	10	111222333
160*** slave - update some data to cause conflicts
161begin;
162update t1 set b="Slave t1 a=1 at X=12", X=12 where a=1 and d='111';
163update t1 set b="Slave t1 a=2 at X=12", X=12 where a=2 and d='111222';
164update t1 set b="Slave t1 a=3 at X=12", X=12 where a=3 and d='111222333';
165update t1 set b="Slave t1 a=4 at X=12", X=12 where a=4 and d='111222333';
166update t2 set b="Slave t2 a=1 at c=12", c=12 where a=1;
167update t2 set b="Slave t2 a=2 at c=12", c=12 where a=2;
168update t2 set b="Slave t2 a=3 at c=12", c=12 where a=3;
169update t2 set b="Slave t2 a=4 at c=12", c=12 where a=4;
170commit;
171*** master - update some data to cause conflicts
172begin;
173update t1 set b="Master t1 a=1 at X=11", X=11 where a=1 and d='111';
174update t1 set b="Master t1 a=2 at X=11", X=11 where a=2 and d='111222';
175update t1 set b="Master t1 a=3 at X=11", X=11 where a=3 and d='111222333';
176delete from t1 where a = 4;
177update t2 set b="Master t2 a=1 at c=11", c=11 where a=1;
178update t2 set b="Master t2 a=2 at c=11", c=11 where a=2;
179update t2 set b="Master t2 a=3 at c=11", c=11 where a=3;
180delete from t2 where a = 4;
181commit;
182*** slave - check conflict info, there should be some
183SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
184VARIABLE_VALUE-@init_ndb_conflict_fn_max
1850
186SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
187VARIABLE_VALUE-@init_ndb_conflict_fn_old
1883
189SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
190VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
1910
192SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
193VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
1940
195SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
196server_id	master_server_id	master_epoch	count	a	d
1972	1	#	1	#	#
1982	1	#	2	#	#
1992	1	#	3	#	#
200SELECT * FROM `t1$EX` ORDER BY a, d;
201server_id	master_server_id	master_epoch	count	a	d
2022	1	#	#	1	111
2032	1	#	#	2	111222
2042	1	#	#	3	111222333
205SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
206SELECT * FROM `t2$EX` ORDER BY a, d;
207*** slave - check update some data that causes conflicts
208select * from t1 order by a, d;
209a	b	X	d
2101	Slave t1 a=1 at X=12	12	111
2112	Slave t1 a=2 at X=12	12	111222
2123	Slave t1 a=3 at X=12	12	111222333
213select * from t2 order by a, d;
214a	b	c	d
2151	Master t2 a=1 at c=11	11	111
2162	Master t2 a=2 at c=11	11	111222
2173	Master t2 a=3 at c=11	11	111222333
218*** slave - correct some data to correspond to the master
219update t1 set b="Slave t1 a=1 at X=11", X=11 where a=1 and d='111';
220delete from t1 where a = 4;
221*** master - update some data, use higher timestamp
222begin;
223update t1 set b="Master t1 a=1 at X=13", X=13 where a=1 and d='111';
224update t1 set b="Master t1 a=2 at X=13", X=13 where a=2 and d='111222';
225update t1 set b="Master t1 a=3 at X=13", X=13 where a=3 and d='111222333';
226update t2 set b="Master t2 a=1 at c=13", c=13 where a=1;
227update t2 set b="Master t2 a=2 at c=13", c=13 where a=2;
228update t2 set b="Master t2 a=3 at c=13", c=13 where a=3;
229commit;
230*** slave - check conflict info, change depends on calling test
231SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
232VARIABLE_VALUE-@init_ndb_conflict_fn_max
2330
234SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
235VARIABLE_VALUE-@init_ndb_conflict_fn_old
2365
237SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
238VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
2390
240SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
241VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
2420
243SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
244server_id	master_server_id	master_epoch	count	a	d
2452	1	#	1	#	#
2462	1	#	2	#	#
2472	1	#	3	#	#
2482	1	#	4	#	#
2492	1	#	5	#	#
250SELECT * FROM `t1$EX` ORDER BY a, d;
251server_id	master_server_id	master_epoch	count	a	d
2522	1	#	#	1	111
2532	1	#	#	2	111222
2542	1	#	#	2	111222
2552	1	#	#	3	111222333
2562	1	#	#	3	111222333
257SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
258SELECT * FROM `t2$EX` ORDER BY a, d;
259*** slave - check higer timestamp
260select * from t1 order by a, d;
261a	b	X	d
2621	Master t1 a=1 at X=13	13	111
2632	Slave t1 a=2 at X=12	12	111222
2643	Slave t1 a=3 at X=12	12	111222333
265select * from t2 order by a, d;
266a	b	c	d
2671	Master t2 a=1 at c=13	13	111
2682	Master t2 a=2 at c=13	13	111222
2693	Master t2 a=3 at c=13	13	111222333
270drop table t1, t2;
271*** Test 2 ********************************************************
272* test native NDB$OLD() conflict resolution
273* test with both allowed "conflict column" types, uint32 and uint64
274* test that setting binlog update option via table works equally well
275*******************************************************************
276set global ndb_log_update_as_write=1;
277update mysql.ndb_replication set binlog_type=4;
278create table t1 (a int, b varchar(32), X bigint unsigned, d varchar(9), primary key (a, d)) engine ndb;
279create table t2 (a int key, b varchar(32), c int unsigned, d varchar(9)) engine ndb;
280************************************************
281* some basic positive testing, i.e. no conflicts
282************************************************
283*** insert some data
284begin;
285insert into t1 values (1, "Master t1 a=1 at X=1", 1, '1');
286insert into t1 values (2, "Master t1 a=2 at X=1", 1, '12');
287insert into t1 values (3, "Master t1 a=3 at X=1", 1, '123');
288insert into t2 values (1, "Master t2 a=1 at c=1", 1, '1');
289insert into t2 values (2, "Master t2 a=2 at c=1", 1, '12');
290insert into t2 values (3, "Master t2 a=3 at c=1", 1, '123');
291commit;
292*** master - update all
293begin;
294update t1 set b="Master t1 X=2", X=X+1;
295update t2 set b="Master t2 c=2", c=c+1;
296commit;
297*** slave - check update all
298select * from t1 order by a, d;
299a	b	X	d
3001	Master t1 X=2	2	1
3012	Master t1 X=2	2	12
3023	Master t1 X=2	2	123
303select * from t2 order by a, d;
304a	b	c	d
3051	Master t2 c=2	2	1
3062	Master t2 c=2	2	12
3073	Master t2 c=2	2	123
308SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
309VARIABLE_VALUE-@init_ndb_conflict_fn_max
3100
311SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
312VARIABLE_VALUE-@init_ndb_conflict_fn_old
3130
314SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
315VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
3160
317SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
318VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
3190
320SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
321server_id	master_server_id	master_epoch	count	a	d
322SELECT * FROM `t1$EX` ORDER BY a, d;
323server_id	master_server_id	master_epoch	count	a	d
324SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
325SELECT * FROM `t2$EX` ORDER BY a, d;
326*** master - update 2 rows in different tables
327update t1 set b="Master t1 a=2 at X=3", X=X+1 where a=2;
328update t2 set b="Master t2 a=3 at c=3", c=c+1 where a=3;
329*** slave - check update 2 rows in different tables
330select * from t1 order by a, d;
331a	b	X	d
3321	Master t1 X=2	2	1
3332	Master t1 a=2 at X=3	3	12
3343	Master t1 X=2	2	123
335select * from t2 order by a, d;
336a	b	c	d
3371	Master t2 c=2	2	1
3382	Master t2 c=2	2	12
3393	Master t2 a=3 at c=3	3	123
340SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
341VARIABLE_VALUE-@init_ndb_conflict_fn_max
3420
343SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
344VARIABLE_VALUE-@init_ndb_conflict_fn_old
3450
346SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
347VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
3480
349SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
350VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
3510
352SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
353server_id	master_server_id	master_epoch	count	a	d
354SELECT * FROM `t1$EX` ORDER BY a, d;
355server_id	master_server_id	master_epoch	count	a	d
356SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
357SELECT * FROM `t2$EX` ORDER BY a, d;
358*** master - delete all
359delete from t1;
360delete from t2;
361*** slave - check delete all
362select * from t1 order by a, d;
363a	b	X	d
364select * from t2 order by a, d;
365a	b	c	d
366SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
367VARIABLE_VALUE-@init_ndb_conflict_fn_max
3680
369SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
370VARIABLE_VALUE-@init_ndb_conflict_fn_old
3710
372SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
373VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
3740
375SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
376VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
3770
378SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
379server_id	master_server_id	master_epoch	count	a	d
380SELECT * FROM `t1$EX` ORDER BY a, d;
381server_id	master_server_id	master_epoch	count	a	d
382SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
383SELECT * FROM `t2$EX` ORDER BY a, d;
384************************
385* start conflict testing
386************************
387*** master - insert some data
388begin;
389insert into t1 values (1, "Master t1 a=1 at X=10", 10, '111');
390insert into t1 values (2, "Master t1 a=2 at X=10", 10, '111222');
391insert into t1 values (3, "Master t1 a=3 at X=10", 10, '111222333');
392insert into t1 values (4, "Master t1 a=4 at X=10", 10, '111222333');
393insert into t2 values (1, "Master t2 a=1 at c=10", 10, '111');
394insert into t2 values (2, "Master t2 a=2 at c=10", 10, '111222');
395insert into t2 values (3, "Master t2 a=3 at c=10", 10, '111222333');
396insert into t2 values (4, "Master t2 a=4 at c=10", 10, '111222333');
397commit;
398*** slave - check conflict info, no conflicts yet
399SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
400VARIABLE_VALUE-@init_ndb_conflict_fn_max
4010
402SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
403VARIABLE_VALUE-@init_ndb_conflict_fn_old
4040
405SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
406VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
4070
408SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
409VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
4100
411SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
412server_id	master_server_id	master_epoch	count	a	d
413SELECT * FROM `t1$EX` ORDER BY a, d;
414server_id	master_server_id	master_epoch	count	a	d
415SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
416SELECT * FROM `t2$EX` ORDER BY a, d;
417*** slave - check insert some data
418select * from t1 order by a, d;
419a	b	X	d
4201	Master t1 a=1 at X=10	10	111
4212	Master t1 a=2 at X=10	10	111222
4223	Master t1 a=3 at X=10	10	111222333
4234	Master t1 a=4 at X=10	10	111222333
424select * from t2 order by a, d;
425a	b	c	d
4261	Master t2 a=1 at c=10	10	111
4272	Master t2 a=2 at c=10	10	111222
4283	Master t2 a=3 at c=10	10	111222333
4294	Master t2 a=4 at c=10	10	111222333
430*** slave - update some data to cause conflicts
431begin;
432update t1 set b="Slave t1 a=1 at X=12", X=12 where a=1 and d='111';
433update t1 set b="Slave t1 a=2 at X=12", X=12 where a=2 and d='111222';
434update t1 set b="Slave t1 a=3 at X=12", X=12 where a=3 and d='111222333';
435update t1 set b="Slave t1 a=4 at X=12", X=12 where a=4 and d='111222333';
436update t2 set b="Slave t2 a=1 at c=12", c=12 where a=1;
437update t2 set b="Slave t2 a=2 at c=12", c=12 where a=2;
438update t2 set b="Slave t2 a=3 at c=12", c=12 where a=3;
439update t2 set b="Slave t2 a=4 at c=12", c=12 where a=4;
440commit;
441*** master - update some data to cause conflicts
442begin;
443update t1 set b="Master t1 a=1 at X=11", X=11 where a=1 and d='111';
444update t1 set b="Master t1 a=2 at X=11", X=11 where a=2 and d='111222';
445update t1 set b="Master t1 a=3 at X=11", X=11 where a=3 and d='111222333';
446delete from t1 where a = 4;
447update t2 set b="Master t2 a=1 at c=11", c=11 where a=1;
448update t2 set b="Master t2 a=2 at c=11", c=11 where a=2;
449update t2 set b="Master t2 a=3 at c=11", c=11 where a=3;
450delete from t2 where a = 4;
451commit;
452*** slave - check conflict info, there should be some
453SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
454VARIABLE_VALUE-@init_ndb_conflict_fn_max
4550
456SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
457VARIABLE_VALUE-@init_ndb_conflict_fn_old
4583
459SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
460VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
4610
462SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
463VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
4640
465SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
466server_id	master_server_id	master_epoch	count	a	d
4672	1	#	1	#	#
4682	1	#	2	#	#
4692	1	#	3	#	#
470SELECT * FROM `t1$EX` ORDER BY a, d;
471server_id	master_server_id	master_epoch	count	a	d
4722	1	#	#	1	111
4732	1	#	#	2	111222
4742	1	#	#	3	111222333
475SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
476SELECT * FROM `t2$EX` ORDER BY a, d;
477*** slave - check update some data that causes conflicts
478select * from t1 order by a, d;
479a	b	X	d
4801	Slave t1 a=1 at X=12	12	111
4812	Slave t1 a=2 at X=12	12	111222
4823	Slave t1 a=3 at X=12	12	111222333
483select * from t2 order by a, d;
484a	b	c	d
4851	Master t2 a=1 at c=11	11	111
4862	Master t2 a=2 at c=11	11	111222
4873	Master t2 a=3 at c=11	11	111222333
488*** slave - correct some data to correspond to the master
489update t1 set b="Slave t1 a=1 at X=11", X=11 where a=1 and d='111';
490delete from t1 where a = 4;
491*** master - update some data, use higher timestamp
492begin;
493update t1 set b="Master t1 a=1 at X=13", X=13 where a=1 and d='111';
494update t1 set b="Master t1 a=2 at X=13", X=13 where a=2 and d='111222';
495update t1 set b="Master t1 a=3 at X=13", X=13 where a=3 and d='111222333';
496update t2 set b="Master t2 a=1 at c=13", c=13 where a=1;
497update t2 set b="Master t2 a=2 at c=13", c=13 where a=2;
498update t2 set b="Master t2 a=3 at c=13", c=13 where a=3;
499commit;
500*** slave - check conflict info, change depends on calling test
501SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
502VARIABLE_VALUE-@init_ndb_conflict_fn_max
5030
504SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
505VARIABLE_VALUE-@init_ndb_conflict_fn_old
5065
507SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
508VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
5090
510SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
511VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
5120
513SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
514server_id	master_server_id	master_epoch	count	a	d
5152	1	#	1	#	#
5162	1	#	2	#	#
5172	1	#	3	#	#
5182	1	#	4	#	#
5192	1	#	5	#	#
520SELECT * FROM `t1$EX` ORDER BY a, d;
521server_id	master_server_id	master_epoch	count	a	d
5222	1	#	#	1	111
5232	1	#	#	2	111222
5242	1	#	#	2	111222
5252	1	#	#	3	111222333
5262	1	#	#	3	111222333
527SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
528SELECT * FROM `t2$EX` ORDER BY a, d;
529*** slave - check higer timestamp
530select * from t1 order by a, d;
531a	b	X	d
5321	Master t1 a=1 at X=13	13	111
5332	Slave t1 a=2 at X=12	12	111222
5343	Slave t1 a=3 at X=12	12	111222333
535select * from t2 order by a, d;
536a	b	c	d
5371	Master t2 a=1 at c=13	13	111
5382	Master t2 a=2 at c=13	13	111222
5393	Master t2 a=3 at c=13	13	111222333
540drop table t1, t2;
541*** Test 3 ***********************************************************
542* test that setting binlog type really also sets the "USE_UPDATE" flag
543* in this case it will result in conflict resolution failure, as
544* update_row never gets called
545* ********************************************************************
546set global ndb_log_update_as_write=0;
547update mysql.ndb_replication set binlog_type=2;
548create table t1 (a int, b varchar(32), X int unsigned, d varchar(9), primary key (a, d)) engine ndb;
549create table t2 (a int key, b varchar(32), c int unsigned, d varchar(9)) engine ndb;
550************************************************
551* some basic positive testing, i.e. no conflicts
552************************************************
553*** insert some data
554begin;
555insert into t1 values (1, "Master t1 a=1 at X=1", 1, '1');
556insert into t1 values (2, "Master t1 a=2 at X=1", 1, '12');
557insert into t1 values (3, "Master t1 a=3 at X=1", 1, '123');
558insert into t2 values (1, "Master t2 a=1 at c=1", 1, '1');
559insert into t2 values (2, "Master t2 a=2 at c=1", 1, '12');
560insert into t2 values (3, "Master t2 a=3 at c=1", 1, '123');
561commit;
562*** master - update all
563begin;
564update t1 set b="Master t1 X=2", X=X+1;
565update t2 set b="Master t2 c=2", c=c+1;
566commit;
567*** slave - check update all
568select * from t1 order by a, d;
569a	b	X	d
5701	Master t1 a=1 at X=1	1	1
5712	Master t1 a=2 at X=1	1	12
5723	Master t1 a=3 at X=1	1	123
573select * from t2 order by a, d;
574a	b	c	d
5751	Master t2 c=2	2	1
5762	Master t2 c=2	2	12
5773	Master t2 c=2	2	123
578SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
579VARIABLE_VALUE-@init_ndb_conflict_fn_max
5800
581SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
582VARIABLE_VALUE-@init_ndb_conflict_fn_old
5833
584SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
585VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
5860
587SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
588VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
5890
590SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
591server_id	master_server_id	master_epoch	count	a	d
5922	1	#	1	#	#
5932	1	#	2	#	#
5942	1	#	3	#	#
595SELECT * FROM `t1$EX` ORDER BY a, d;
596server_id	master_server_id	master_epoch	count	a	d
5972	1	#	#	1	1
5982	1	#	#	2	12
5992	1	#	#	3	123
600SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
601SELECT * FROM `t2$EX` ORDER BY a, d;
602*** master - update 2 rows in different tables
603update t1 set b="Master t1 a=2 at X=3", X=X+1 where a=2;
604update t2 set b="Master t2 a=3 at c=3", c=c+1 where a=3;
605*** slave - check update 2 rows in different tables
606select * from t1 order by a, d;
607a	b	X	d
6081	Master t1 a=1 at X=1	1	1
6092	Master t1 a=2 at X=1	1	12
6103	Master t1 a=3 at X=1	1	123
611select * from t2 order by a, d;
612a	b	c	d
6131	Master t2 c=2	2	1
6142	Master t2 c=2	2	12
6153	Master t2 a=3 at c=3	3	123
616SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
617VARIABLE_VALUE-@init_ndb_conflict_fn_max
6180
619SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
620VARIABLE_VALUE-@init_ndb_conflict_fn_old
6214
622SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
623VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
6240
625SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
626VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
6270
628SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
629server_id	master_server_id	master_epoch	count	a	d
6302	1	#	1	#	#
6312	1	#	2	#	#
6322	1	#	3	#	#
6332	1	#	4	#	#
634SELECT * FROM `t1$EX` ORDER BY a, d;
635server_id	master_server_id	master_epoch	count	a	d
6362	1	#	#	1	1
6372	1	#	#	2	12
6382	1	#	#	2	12
6392	1	#	#	3	123
640SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
641SELECT * FROM `t2$EX` ORDER BY a, d;
642*** master - delete all
643delete from t1;
644delete from t2;
645*** slave - check delete all
646select * from t1 order by a, d;
647a	b	X	d
648select * from t2 order by a, d;
649a	b	c	d
650SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
651VARIABLE_VALUE-@init_ndb_conflict_fn_max
6520
653SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
654VARIABLE_VALUE-@init_ndb_conflict_fn_old
6554
656SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
657VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
6580
659SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
660VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
6610
662SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
663server_id	master_server_id	master_epoch	count	a	d
6642	1	#	1	#	#
6652	1	#	2	#	#
6662	1	#	3	#	#
6672	1	#	4	#	#
668SELECT * FROM `t1$EX` ORDER BY a, d;
669server_id	master_server_id	master_epoch	count	a	d
6702	1	#	#	1	1
6712	1	#	#	2	12
6722	1	#	#	2	12
6732	1	#	#	3	123
674SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
675SELECT * FROM `t2$EX` ORDER BY a, d;
676************************
677* start conflict testing
678************************
679*** master - insert some data
680begin;
681insert into t1 values (1, "Master t1 a=1 at X=10", 10, '111');
682insert into t1 values (2, "Master t1 a=2 at X=10", 10, '111222');
683insert into t1 values (3, "Master t1 a=3 at X=10", 10, '111222333');
684insert into t1 values (4, "Master t1 a=4 at X=10", 10, '111222333');
685insert into t2 values (1, "Master t2 a=1 at c=10", 10, '111');
686insert into t2 values (2, "Master t2 a=2 at c=10", 10, '111222');
687insert into t2 values (3, "Master t2 a=3 at c=10", 10, '111222333');
688insert into t2 values (4, "Master t2 a=4 at c=10", 10, '111222333');
689commit;
690*** slave - check conflict info, no conflicts yet
691SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
692VARIABLE_VALUE-@init_ndb_conflict_fn_max
6930
694SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
695VARIABLE_VALUE-@init_ndb_conflict_fn_old
6960
697SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
698VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
6990
700SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
701VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
7020
703SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
704server_id	master_server_id	master_epoch	count	a	d
705SELECT * FROM `t1$EX` ORDER BY a, d;
706server_id	master_server_id	master_epoch	count	a	d
707SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
708SELECT * FROM `t2$EX` ORDER BY a, d;
709*** slave - check insert some data
710select * from t1 order by a, d;
711a	b	X	d
7121	Master t1 a=1 at X=10	10	111
7132	Master t1 a=2 at X=10	10	111222
7143	Master t1 a=3 at X=10	10	111222333
7154	Master t1 a=4 at X=10	10	111222333
716select * from t2 order by a, d;
717a	b	c	d
7181	Master t2 a=1 at c=10	10	111
7192	Master t2 a=2 at c=10	10	111222
7203	Master t2 a=3 at c=10	10	111222333
7214	Master t2 a=4 at c=10	10	111222333
722*** slave - update some data to cause conflicts
723begin;
724update t1 set b="Slave t1 a=1 at X=12", X=12 where a=1 and d='111';
725update t1 set b="Slave t1 a=2 at X=12", X=12 where a=2 and d='111222';
726update t1 set b="Slave t1 a=3 at X=12", X=12 where a=3 and d='111222333';
727update t1 set b="Slave t1 a=4 at X=12", X=12 where a=4 and d='111222333';
728update t2 set b="Slave t2 a=1 at c=12", c=12 where a=1;
729update t2 set b="Slave t2 a=2 at c=12", c=12 where a=2;
730update t2 set b="Slave t2 a=3 at c=12", c=12 where a=3;
731update t2 set b="Slave t2 a=4 at c=12", c=12 where a=4;
732commit;
733*** master - update some data to cause conflicts
734begin;
735update t1 set b="Master t1 a=1 at X=11", X=11 where a=1 and d='111';
736update t1 set b="Master t1 a=2 at X=11", X=11 where a=2 and d='111222';
737update t1 set b="Master t1 a=3 at X=11", X=11 where a=3 and d='111222333';
738delete from t1 where a = 4;
739update t2 set b="Master t2 a=1 at c=11", c=11 where a=1;
740update t2 set b="Master t2 a=2 at c=11", c=11 where a=2;
741update t2 set b="Master t2 a=3 at c=11", c=11 where a=3;
742delete from t2 where a = 4;
743commit;
744*** slave - check conflict info, there should be some
745SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
746VARIABLE_VALUE-@init_ndb_conflict_fn_max
7470
748SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
749VARIABLE_VALUE-@init_ndb_conflict_fn_old
7503
751SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
752VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
7530
754SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
755VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
7560
757SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
758server_id	master_server_id	master_epoch	count	a	d
7592	1	#	5	#	#
7602	1	#	6	#	#
7612	1	#	7	#	#
762SELECT * FROM `t1$EX` ORDER BY a, d;
763server_id	master_server_id	master_epoch	count	a	d
7642	1	#	#	1	111
7652	1	#	#	2	111222
7662	1	#	#	3	111222333
767SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
768SELECT * FROM `t2$EX` ORDER BY a, d;
769*** slave - check update some data that causes conflicts
770select * from t1 order by a, d;
771a	b	X	d
7721	Slave t1 a=1 at X=12	12	111
7732	Slave t1 a=2 at X=12	12	111222
7743	Slave t1 a=3 at X=12	12	111222333
775select * from t2 order by a, d;
776a	b	c	d
7771	Master t2 a=1 at c=11	11	111
7782	Master t2 a=2 at c=11	11	111222
7793	Master t2 a=3 at c=11	11	111222333
780*** slave - correct some data to correspond to the master
781update t1 set b="Slave t1 a=1 at X=11", X=11 where a=1 and d='111';
782delete from t1 where a = 4;
783*** master - update some data, use higher timestamp
784begin;
785update t1 set b="Master t1 a=1 at X=13", X=13 where a=1 and d='111';
786update t1 set b="Master t1 a=2 at X=13", X=13 where a=2 and d='111222';
787update t1 set b="Master t1 a=3 at X=13", X=13 where a=3 and d='111222333';
788update t2 set b="Master t2 a=1 at c=13", c=13 where a=1;
789update t2 set b="Master t2 a=2 at c=13", c=13 where a=2;
790update t2 set b="Master t2 a=3 at c=13", c=13 where a=3;
791commit;
792*** slave - check conflict info, change depends on calling test
793SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
794VARIABLE_VALUE-@init_ndb_conflict_fn_max
7950
796SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
797VARIABLE_VALUE-@init_ndb_conflict_fn_old
7986
799SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
800VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
8010
802SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
803VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
8040
805SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
806server_id	master_server_id	master_epoch	count	a	d
8072	1	#	5	#	#
8082	1	#	6	#	#
8092	1	#	7	#	#
8102	1	#	8	#	#
8112	1	#	9	#	#
8122	1	#	10	#	#
813SELECT * FROM `t1$EX` ORDER BY a, d;
814server_id	master_server_id	master_epoch	count	a	d
8152	1	#	#	1	111
8162	1	#	#	1	111
8172	1	#	#	2	111222
8182	1	#	#	2	111222
8192	1	#	#	3	111222333
8202	1	#	#	3	111222333
821SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
822SELECT * FROM `t2$EX` ORDER BY a, d;
823*** slave - check higer timestamp
824select * from t1 order by a, d;
825a	b	X	d
8261	Slave t1 a=1 at X=11	11	111
8272	Slave t1 a=2 at X=12	12	111222
8283	Slave t1 a=3 at X=12	12	111222333
829select * from t2 order by a, d;
830a	b	c	d
8311	Master t2 a=1 at c=13	13	111
8322	Master t2 a=2 at c=13	13	111222
8333	Master t2 a=3 at c=13	13	111222333
834drop table t1, t2;
835*** Test 4 ***********************************************************
836* test with FULL rows and "USE_UPDATE" flag
837* ********************************************************************
838set global ndb_log_update_as_write=0;
839update mysql.ndb_replication set binlog_type=7;
840create table t1 (a int, b varchar(32), X int unsigned, d varchar(9), primary key (a, d)) engine ndb;
841create table t2 (a int key, b varchar(32), c int unsigned, d varchar(9)) engine ndb;
842************************************************
843* some basic positive testing, i.e. no conflicts
844************************************************
845*** insert some data
846begin;
847insert into t1 values (1, "Master t1 a=1 at X=1", 1, '1');
848insert into t1 values (2, "Master t1 a=2 at X=1", 1, '12');
849insert into t1 values (3, "Master t1 a=3 at X=1", 1, '123');
850insert into t2 values (1, "Master t2 a=1 at c=1", 1, '1');
851insert into t2 values (2, "Master t2 a=2 at c=1", 1, '12');
852insert into t2 values (3, "Master t2 a=3 at c=1", 1, '123');
853commit;
854*** master - update all
855begin;
856update t1 set b="Master t1 X=2", X=X+1;
857update t2 set b="Master t2 c=2", c=c+1;
858commit;
859*** slave - check update all
860select * from t1 order by a, d;
861a	b	X	d
8621	Master t1 X=2	2	1
8632	Master t1 X=2	2	12
8643	Master t1 X=2	2	123
865select * from t2 order by a, d;
866a	b	c	d
8671	Master t2 c=2	2	1
8682	Master t2 c=2	2	12
8693	Master t2 c=2	2	123
870SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
871VARIABLE_VALUE-@init_ndb_conflict_fn_max
8720
873SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
874VARIABLE_VALUE-@init_ndb_conflict_fn_old
8750
876SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
877VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
8780
879SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
880VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
8810
882SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
883server_id	master_server_id	master_epoch	count	a	d
884SELECT * FROM `t1$EX` ORDER BY a, d;
885server_id	master_server_id	master_epoch	count	a	d
886SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
887SELECT * FROM `t2$EX` ORDER BY a, d;
888*** master - update 2 rows in different tables
889update t1 set b="Master t1 a=2 at X=3", X=X+1 where a=2;
890update t2 set b="Master t2 a=3 at c=3", c=c+1 where a=3;
891*** slave - check update 2 rows in different tables
892select * from t1 order by a, d;
893a	b	X	d
8941	Master t1 X=2	2	1
8952	Master t1 a=2 at X=3	3	12
8963	Master t1 X=2	2	123
897select * from t2 order by a, d;
898a	b	c	d
8991	Master t2 c=2	2	1
9002	Master t2 c=2	2	12
9013	Master t2 a=3 at c=3	3	123
902SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
903VARIABLE_VALUE-@init_ndb_conflict_fn_max
9040
905SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
906VARIABLE_VALUE-@init_ndb_conflict_fn_old
9070
908SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
909VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
9100
911SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
912VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
9130
914SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
915server_id	master_server_id	master_epoch	count	a	d
916SELECT * FROM `t1$EX` ORDER BY a, d;
917server_id	master_server_id	master_epoch	count	a	d
918SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
919SELECT * FROM `t2$EX` ORDER BY a, d;
920*** master - delete all
921delete from t1;
922delete from t2;
923*** slave - check delete all
924select * from t1 order by a, d;
925a	b	X	d
926select * from t2 order by a, d;
927a	b	c	d
928SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
929VARIABLE_VALUE-@init_ndb_conflict_fn_max
9300
931SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
932VARIABLE_VALUE-@init_ndb_conflict_fn_old
9330
934SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
935VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
9360
937SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
938VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
9390
940SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
941server_id	master_server_id	master_epoch	count	a	d
942SELECT * FROM `t1$EX` ORDER BY a, d;
943server_id	master_server_id	master_epoch	count	a	d
944SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
945SELECT * FROM `t2$EX` ORDER BY a, d;
946************************
947* start conflict testing
948************************
949*** master - insert some data
950begin;
951insert into t1 values (1, "Master t1 a=1 at X=10", 10, '111');
952insert into t1 values (2, "Master t1 a=2 at X=10", 10, '111222');
953insert into t1 values (3, "Master t1 a=3 at X=10", 10, '111222333');
954insert into t1 values (4, "Master t1 a=4 at X=10", 10, '111222333');
955insert into t2 values (1, "Master t2 a=1 at c=10", 10, '111');
956insert into t2 values (2, "Master t2 a=2 at c=10", 10, '111222');
957insert into t2 values (3, "Master t2 a=3 at c=10", 10, '111222333');
958insert into t2 values (4, "Master t2 a=4 at c=10", 10, '111222333');
959commit;
960*** slave - check conflict info, no conflicts yet
961SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
962VARIABLE_VALUE-@init_ndb_conflict_fn_max
9630
964SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
965VARIABLE_VALUE-@init_ndb_conflict_fn_old
9660
967SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
968VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
9690
970SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
971VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
9720
973SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
974server_id	master_server_id	master_epoch	count	a	d
975SELECT * FROM `t1$EX` ORDER BY a, d;
976server_id	master_server_id	master_epoch	count	a	d
977SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
978SELECT * FROM `t2$EX` ORDER BY a, d;
979*** slave - check insert some data
980select * from t1 order by a, d;
981a	b	X	d
9821	Master t1 a=1 at X=10	10	111
9832	Master t1 a=2 at X=10	10	111222
9843	Master t1 a=3 at X=10	10	111222333
9854	Master t1 a=4 at X=10	10	111222333
986select * from t2 order by a, d;
987a	b	c	d
9881	Master t2 a=1 at c=10	10	111
9892	Master t2 a=2 at c=10	10	111222
9903	Master t2 a=3 at c=10	10	111222333
9914	Master t2 a=4 at c=10	10	111222333
992*** slave - update some data to cause conflicts
993begin;
994update t1 set b="Slave t1 a=1 at X=12", X=12 where a=1 and d='111';
995update t1 set b="Slave t1 a=2 at X=12", X=12 where a=2 and d='111222';
996update t1 set b="Slave t1 a=3 at X=12", X=12 where a=3 and d='111222333';
997update t1 set b="Slave t1 a=4 at X=12", X=12 where a=4 and d='111222333';
998update t2 set b="Slave t2 a=1 at c=12", c=12 where a=1;
999update t2 set b="Slave t2 a=2 at c=12", c=12 where a=2;
1000update t2 set b="Slave t2 a=3 at c=12", c=12 where a=3;
1001update t2 set b="Slave t2 a=4 at c=12", c=12 where a=4;
1002commit;
1003*** master - update some data to cause conflicts
1004begin;
1005update t1 set b="Master t1 a=1 at X=11", X=11 where a=1 and d='111';
1006update t1 set b="Master t1 a=2 at X=11", X=11 where a=2 and d='111222';
1007update t1 set b="Master t1 a=3 at X=11", X=11 where a=3 and d='111222333';
1008delete from t1 where a = 4;
1009update t2 set b="Master t2 a=1 at c=11", c=11 where a=1;
1010update t2 set b="Master t2 a=2 at c=11", c=11 where a=2;
1011update t2 set b="Master t2 a=3 at c=11", c=11 where a=3;
1012delete from t2 where a = 4;
1013commit;
1014*** slave - check conflict info, there should be some
1015SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
1016VARIABLE_VALUE-@init_ndb_conflict_fn_max
10170
1018SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
1019VARIABLE_VALUE-@init_ndb_conflict_fn_old
10204
1021SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
1022VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
10230
1024SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
1025VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
10260
1027SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
1028server_id	master_server_id	master_epoch	count	a	d
10292	1	#	1	#	#
10302	1	#	2	#	#
10312	1	#	3	#	#
10322	1	#	4	#	#
1033SELECT * FROM `t1$EX` ORDER BY a, d;
1034server_id	master_server_id	master_epoch	count	a	d
10352	1	#	#	1	111
10362	1	#	#	2	111222
10372	1	#	#	3	111222333
10382	1	#	#	4	111222333
1039SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
1040SELECT * FROM `t2$EX` ORDER BY a, d;
1041*** slave - check update some data that causes conflicts
1042select * from t1 order by a, d;
1043a	b	X	d
10441	Slave t1 a=1 at X=12	12	111
10452	Slave t1 a=2 at X=12	12	111222
10463	Slave t1 a=3 at X=12	12	111222333
10474	Slave t1 a=4 at X=12	12	111222333
1048select * from t2 order by a, d;
1049a	b	c	d
10501	Master t2 a=1 at c=11	11	111
10512	Master t2 a=2 at c=11	11	111222
10523	Master t2 a=3 at c=11	11	111222333
1053*** slave - correct some data to correspond to the master
1054update t1 set b="Slave t1 a=1 at X=11", X=11 where a=1 and d='111';
1055delete from t1 where a = 4;
1056*** master - update some data, use higher timestamp
1057begin;
1058update t1 set b="Master t1 a=1 at X=13", X=13 where a=1 and d='111';
1059update t1 set b="Master t1 a=2 at X=13", X=13 where a=2 and d='111222';
1060update t1 set b="Master t1 a=3 at X=13", X=13 where a=3 and d='111222333';
1061update t2 set b="Master t2 a=1 at c=13", c=13 where a=1;
1062update t2 set b="Master t2 a=2 at c=13", c=13 where a=2;
1063update t2 set b="Master t2 a=3 at c=13", c=13 where a=3;
1064commit;
1065*** slave - check conflict info, change depends on calling test
1066SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX";
1067VARIABLE_VALUE-@init_ndb_conflict_fn_max
10680
1069SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_old FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_OLD";
1070VARIABLE_VALUE-@init_ndb_conflict_fn_old
10716
1072SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_MAX_DEL_WIN";
1073VARIABLE_VALUE-@init_ndb_conflict_fn_max_del_win
10740
1075SELECT VARIABLE_VALUE-@init_ndb_conflict_fn_epoch FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME LIKE "NDB_CONFLICT_FN_EPOCH";
1076VARIABLE_VALUE-@init_ndb_conflict_fn_epoch
10770
1078SELECT server_id, master_server_id, master_epoch, count, a, d FROM `t1$EX` ORDER BY server_id, master_server_id, master_epoch, count;
1079server_id	master_server_id	master_epoch	count	a	d
10802	1	#	1	#	#
10812	1	#	2	#	#
10822	1	#	3	#	#
10832	1	#	4	#	#
10842	1	#	5	#	#
10852	1	#	6	#	#
1086SELECT * FROM `t1$EX` ORDER BY a, d;
1087server_id	master_server_id	master_epoch	count	a	d
10882	1	#	#	1	111
10892	1	#	#	2	111222
10902	1	#	#	2	111222
10912	1	#	#	3	111222333
10922	1	#	#	3	111222333
10932	1	#	#	4	111222333
1094SELECT * FROM `t2$EX` ORDER BY server_id, master_server_id, master_epoch, count;
1095SELECT * FROM `t2$EX` ORDER BY a, d;
1096*** slave - check higer timestamp
1097select * from t1 order by a, d;
1098a	b	X	d
10991	Master t1 a=1 at X=13	13	111
11002	Slave t1 a=2 at X=12	12	111222
11013	Slave t1 a=3 at X=12	12	111222333
1102select * from t2 order by a, d;
1103a	b	c	d
11041	Master t2 a=1 at c=13	13	111
11052	Master t2 a=2 at c=13	13	111222
11063	Master t2 a=3 at c=13	13	111222333
1107drop table t1, t2;
1108*** test cleanup
1109include/rpl_end.inc
1110