8
8
source include/have_innodb.inc;
10
10
# Add suppression for expected warning(s) in slaves error log
11
call mtr.add_suppression("Slave: Can't find record in 't.' Error_code: 1032");
12
call mtr.add_suppression("Slave: Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
13
call mtr.add_suppression("Slave: Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
11
call mtr.add_suppression("Can.t find record in .t[12].* Error_code: 1032");
12
call mtr.add_suppression("Cannot delete or update a parent row: a foreign key constraint fails .* Error_code: 1451");
13
call mtr.add_suppression("Cannot add or update a child row: a foreign key constraint fails .* Error_code: 1452");
14
call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.* Duplicate entry .1. for key .PRIMARY.* Error_code: 1062");
15
16
SET @old_slave_exec_mode= @@global.slave_exec_mode;
37
38
sync_slave_with_master;
38
39
SELECT * FROM t1 ORDER BY a;
39
40
SELECT * FROM t2 ORDER BY a;
40
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
42
eval SELECT "$last_error" AS Last_SQL_Error;
41
--source include/check_slave_no_error.inc
45
43
# An insert of a row that already exists. Since we are replacing the
46
44
# row if it already exists, the most apropriate representation is
53
51
SELECT * FROM t1 ORDER BY a;
54
52
sync_slave_with_master;
55
53
SELECT * FROM t1 ORDER BY a;
56
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
58
eval SELECT "$last_error" AS Last_SQL_Error;
54
--source include/check_slave_no_error.inc
61
56
# BUG#19958: RBR idempotency issue for UPDATE and DELETE
80
75
sync_slave_with_master;
81
76
SELECT * FROM t1 ORDER BY a;
82
77
SELECT * FROM t2 ORDER BY a;
83
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
85
eval SELECT "$last_error" AS Last_SQL_Error;
78
--source include/check_slave_no_error.inc
212
204
--echo *** slave must stop (Trying to delete a referenced foreing key)
213
205
connection slave;
214
source include/wait_for_slave_sql_to_stop.inc;
216
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
218
eval SELECT "$last_error" AS Last_SQL_Error;
206
# 1451 = ER_ROW_ID_REFERENCED_2
207
--let $slave_sql_errno= 1451
208
--source include/wait_for_slave_sql_error.inc
221
210
select * from ti1 order by b /* must be (1),(2),(3) - not deleted */;
222
211
set foreign_key_checks= 0;
246
235
--echo *** slave must stop (Trying to insert an invalid foreign key)
247
236
connection slave;
248
source include/wait_for_slave_sql_to_stop.inc;
250
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
252
eval SELECT "$last_error" AS Last_SQL_Error;
237
# 1452 = ER_NO_REFERENCED_ROW_2
238
--let $slave_sql_errno= 1452
239
--source include/wait_for_slave_sql_error.inc
255
241
select * from ti2 order by b /* must be (2,2) */;
256
242
set foreign_key_checks= 0;
285
271
--echo *** slave must stop (Trying to insert a dupliacte key)
286
272
connection slave;
287
source include/wait_for_slave_sql_to_stop.inc;
289
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
291
eval SELECT "$last_error" AS Last_SQL_Error;
273
# 1062 = ER_DUP_ENTRY
274
--let $slave_sql_errno= 1062
275
--source include/wait_for_slave_sql_error.inc
294
277
set foreign_key_checks= 0;
295
278
delete from ti1 where b=1;
320
303
--echo *** slave must stop (Key was not found)
321
304
connection slave;
322
source include/wait_for_slave_sql_to_stop.inc;
324
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
326
eval SELECT "$last_error" AS Last_SQL_Error;
305
# 1032 = ER_KEY_NOT_FOUND
306
--let $slave_sql_errno= 1032
307
--source include/wait_for_slave_sql_error.inc
329
309
set global slave_exec_mode='IDEMPOTENT';
330
310
start slave sql_thread;
337
317
DELETE FROM t2 WHERE a = -2;
338
318
--echo *** slave must stop (Key was not found)
339
319
connection slave;
340
source include/wait_for_slave_sql_to_stop.inc;
342
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
344
eval SELECT "$last_error" AS Last_SQL_Error;
347
set global slave_exec_mode='IDEMPOTENT';
348
start slave sql_thread;
350
sync_slave_with_master;
352
set global slave_exec_mode='STRICT';
354
UPDATE t1 SET a = 1 WHERE a = -1;
355
UPDATE t2 SET a = 1 WHERE a = -1;
358
UPDATE t1 SET a = 1 WHERE a = -1;
360
--echo *** slave must stop (Key was not found)
362
source include/wait_for_slave_sql_to_stop.inc;
364
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
366
eval SELECT "$last_error" AS Last_SQL_Error;
369
set global slave_exec_mode='IDEMPOTENT';
370
start slave sql_thread;
372
sync_slave_with_master;
374
set global slave_exec_mode='STRICT';
378
UPDATE t2 SET a = 1 WHERE a = -1;
380
--echo *** slave must stop (Key was not found)
382
source include/wait_for_slave_sql_to_stop.inc;
384
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1);
386
eval SELECT "$last_error" AS Last_SQL_Error;
320
# 1032 = ER_KEY_NOT_FOUND
321
--let $slave_sql_errno= 1032
322
source include/wait_for_slave_sql_error.inc;
324
set global slave_exec_mode='IDEMPOTENT';
325
start slave sql_thread;
327
sync_slave_with_master;
329
set global slave_exec_mode='STRICT';
331
UPDATE t1 SET a = 1 WHERE a = -1;
332
UPDATE t2 SET a = 1 WHERE a = -1;
335
UPDATE t1 SET a = 1 WHERE a = -1;
337
--echo *** slave must stop (Key was not found)
339
# 1032 = ER_KEY_NOT_FOUND
340
--let $slave_sql_errno= 1032
341
source include/wait_for_slave_sql_error.inc;
343
set global slave_exec_mode='IDEMPOTENT';
344
start slave sql_thread;
346
sync_slave_with_master;
348
set global slave_exec_mode='STRICT';
352
UPDATE t2 SET a = 1 WHERE a = -1;
354
--echo *** slave must stop (Key was not found)
356
# 1032 = ER_KEY_NOT_FOUND
357
--let $slave_sql_errno= 1032
358
source include/wait_for_slave_sql_error.inc;
389
360
set global slave_exec_mode='IDEMPOTENT';
390
361
start slave sql_thread;