mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for BUG#3461 "multi-table DELETE replicated despite replicate-wild-ignore-table":
In tables_ok(), when there is no table having "updating==TRUE" in the list, return that we don't replicate this statement (the slave is supposed to replicate *changes* only). In practice, the case can only happen for this statement: DELETE t FROM t,u WHERE ... ; tables_ok(t,u) will now return 0, which (check all_tables_not_ok()) will give a chance to tables_ok(t) to run. sql/slave.cc: In tables_ok(), when there is no table having "updating==TRUE" in the list, return that we don't replicate this statement (the slave is supposed to replicate *changes* only). In practice, the case can only happen for this statement: DELETE t FROM t,u WHERE ... ; tables_ok(t,u) will now return 0, which (check all_tables_not_ok()) will give a chance to tables_ok(t) to run.
This commit is contained in:
21
mysql-test/r/rpl_multi_delete2.result
Normal file
21
mysql-test/r/rpl_multi_delete2.result
Normal file
@ -0,0 +1,21 @@
|
||||
slave stop;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
slave start;
|
||||
create table t1 (a int);
|
||||
create table t2 (a int);
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (1);
|
||||
delete t1.* from t1, t2 where t1.a = t2.a;
|
||||
select * from t1;
|
||||
a
|
||||
select * from t2;
|
||||
a
|
||||
1
|
||||
select * from t1;
|
||||
Table 'test.t1' doesn't exist
|
||||
select * from t2;
|
||||
Table 'test.t2' doesn't exist
|
||||
drop table t1,t2;
|
Reference in New Issue
Block a user