From f03d54f1d1a60d3e05a4cbb1516723c704e414fd Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Sep 2005 06:31:38 -0600 Subject: fix for BUG#11139 (multi-delete with alias breaking replication if table rules are present): the problem originally was that the tables in auxilliary_tables did not have the correct real_name, which caused problems in the second call to tables_ok(). The fix corrects the real_name problem, and also sets the updating flag properly, which makes the second call to tables_ok() unnecessary. mysql-test/r/rpl_multi_delete2.result: updates for for BUG#11139 mysql-test/t/rpl_multi_delete2-slave.opt: updates for for BUG#11139 mysql-test/t/rpl_multi_delete2.test: updates for for BUG#11139 sql/mysql_priv.h: fix for BUG#11139 (multi-delete with alias breaking replication if table rules are present) sql/slave.cc: fix for BUG#11139 (multi-delete with alias breaking replication if table rules are present) sql/sql_parse.cc: fix for BUG#11139 (multi-delete with alias breaking replication if table rules are present) sql/sql_yacc.yy: fix for BUG#11139 (multi-delete with alias breaking replication if table rules are present) --- mysql-test/r/rpl_multi_delete2.result | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'mysql-test/r/rpl_multi_delete2.result') diff --git a/mysql-test/r/rpl_multi_delete2.result b/mysql-test/r/rpl_multi_delete2.result index c6c088111fc..73db9f62eb4 100644 --- a/mysql-test/r/rpl_multi_delete2.result +++ b/mysql-test/r/rpl_multi_delete2.result @@ -4,6 +4,26 @@ reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; +set sql_log_bin=0; +create database mysqltest_from; +set sql_log_bin=1; +create database mysqltest_to; +use mysqltest_from; +drop table if exists a; +CREATE TABLE a (i INT); +INSERT INTO a VALUES(1); +DELETE alias FROM a alias WHERE alias.i=1; +SELECT * FROM a; +i +insert into a values(2),(3); +delete a alias FROM a alias where alias.i=2; +select * from a; +i +3 +use mysqltest_to; +select * from a; +i +3 create table t1 (a int); create table t2 (a int); insert into t1 values (1); @@ -15,7 +35,10 @@ select * from t2; a 1 select * from t1; -ERROR 42S02: Table 'test.t1' doesn't exist +ERROR 42S02: Table 'mysqltest_to.t1' doesn't exist select * from t2; -ERROR 42S02: Table 'test.t2' doesn't exist -drop table t1,t2; +ERROR 42S02: Table 'mysqltest_to.t2' doesn't exist +set sql_log_bin=0; +drop database mysqltest_from; +set sql_log_bin=1; +drop database mysqltest_to; -- cgit v1.2.1