summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorsasha@asksasha.com <>2005-09-14 06:31:38 -0600
committersasha@asksasha.com <>2005-09-14 06:31:38 -0600
commit00eae49b5c11bb0450fa861af5bff4e7032c5a57 (patch)
tree64a17f5abb4007e126807cec7bfc79400fc17fcf /sql/sql_yacc.yy
parent1e6736b543dd18a2808ed224a4fbed47808d219b (diff)
downloadmariadb-git-00eae49b5c11bb0450fa861af5bff4e7032c5a57.tar.gz
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.
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy10
1 files changed, 4 insertions, 6 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 6283cad7cc8..e29aaac8f94 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -4295,12 +4295,10 @@ single_multi:
}
where_clause opt_order_clause
delete_limit_clause {}
- | table_wild_list
- { mysql_init_multi_delete(Lex); }
- FROM join_table_list where_clause
- | FROM table_wild_list
- { mysql_init_multi_delete(Lex); }
- USING join_table_list where_clause
+ | table_wild_list {mysql_init_multi_delete(Lex);}
+ FROM join_table_list {fix_multi_delete_lex(Lex);} where_clause
+ | FROM table_wild_list { mysql_init_multi_delete(Lex);}
+ USING join_table_list {fix_multi_delete_lex(Lex);} where_clause
{}
;