1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

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).
This commit is contained in:
guilhem@mysql.com
2004-01-29 19:22:29 +01:00
parent 71c6d0c4f9
commit 5ce227e78a
4 changed files with 49 additions and 1 deletions

View File

@ -0,0 +1,22 @@
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;

View File

@ -0,0 +1 @@
--replicate-wild-do-table=test.%

View File

@ -0,0 +1,23 @@
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;

View File

@ -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));