Commit 5ce227e7 authored by guilhem@mysql.com's avatar guilhem@mysql.com

Fix for BUG#2527 "Multi-Table Delete - Not Replication use replicate-wild-do-table"

(as long as replicate-*-table rules were defined, multi-table DELETE was never
replicated by the slave).
parent 71c6d0c4
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;
a
select * from t2;
a
1
drop table t1,t2;
--replicate-wild-do-table=test.%
source include/master-slave.inc;
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;
save_master_pos;
select * from t1;
select * from t2;
connection slave;
sync_with_master;
select * from t1;
select * from t2;
connection master;
drop table t1,t2;
save_master_pos;
connection slave;
sync_with_master;
...@@ -1334,7 +1334,9 @@ mysql_execute_command(void) ...@@ -1334,7 +1334,9 @@ mysql_execute_command(void)
Skip if we are in the slave thread, some table rules have been Skip if we are in the slave thread, some table rules have been
given and the table list says the query should not be replicated given and the table list says the query should not be replicated
*/ */
if (table_rules_on && tables && !tables_ok(thd,tables)) if (table_rules_on && tables && !tables_ok(thd,tables) &&
((lex->sql_command != SQLCOM_DELETE_MULTI) ||
!tables_ok(thd,(TABLE_LIST *)thd->lex.auxilliary_table_list.first)))
{ {
/* we warn the slave SQL thread */ /* we warn the slave SQL thread */
my_error(ER_SLAVE_IGNORED_TABLE, MYF(0)); my_error(ER_SLAVE_IGNORED_TABLE, MYF(0));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment