summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <aelkin@mysql.com>2006-01-26 12:49:55 +0200
committerunknown <aelkin@mysql.com>2006-01-26 12:49:55 +0200
commit956a5b6dfafe63ce7810aebc643205e0864ee8f1 (patch)
tree44896676c56afc053d79b75213575c2ba73a5b20 /sql
parent7dd2ec0f1b3cc4b6cfb192b314e246d12350c5f0 (diff)
downloadmariadb-git-956a5b6dfafe63ce7810aebc643205e0864ee8f1.tar.gz
BUG#15699 importing the fix from 5.0
sql/sql_parse.cc: BUG#15699,16487 merge of the fix made in 5.0 mysql-test/r/rpl_multi_update4.result: New BitKeeper file ``mysql-test/r/rpl_multi_update4.result'' mysql-test/t/rpl_multi_update4-slave.opt: New BitKeeper file ``mysql-test/t/rpl_multi_update4-slave.opt'' mysql-test/t/rpl_multi_update4.test: New BitKeeper file ``mysql-test/t/rpl_multi_update4.test'' mysql-test/r/rpl_ignore_table.result: New BitKeeper file ``mysql-test/r/rpl_ignore_table.result''
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_parse.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 90de630da60..1daa0a5ffec 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2840,21 +2840,26 @@ unsent_create_error:
if ((res= multi_update_precheck(thd, tables)))
break;
- if ((res= mysql_multi_update_lock(thd, tables, &select_lex->item_list,
- select_lex)))
- break;
-
+ res= mysql_multi_update_lock(thd, tables, &select_lex->item_list,
+ select_lex);
#ifdef HAVE_REPLICATION
/* Check slave filtering rules */
if (thd->slave_thread)
if (all_tables_not_ok(thd,tables))
{
+ if (res!= 0)
+ {
+ res= 0; /* don't care of prev failure */
+ thd->clear_error(); /* filters are of highest prior */
+ }
/* we warn the slave SQL thread */
my_error(ER_SLAVE_IGNORED_TABLE, MYF(0));
break;
}
#endif /* HAVE_REPLICATION */
-
+ if (res)
+ break;
+
res= mysql_multi_update(thd,tables,
&select_lex->item_list,
&lex->value_list,