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)
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
*/
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 */
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