diff options
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r-- | sql/sql_update.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 9d05400e160..736dceba837 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -24,6 +24,7 @@ #include "sp_head.h" #include "sql_trigger.h" #include "probes_mysql.h" +#include "debug_sync.h" /* Return 0 if row hasn't changed */ @@ -1135,8 +1136,11 @@ reopen_tables: items from 'fields' list, so the cleanup above is necessary to. */ cleanup_items(thd->free_list); - + cleanup_items(thd->stmt_arena->free_list); close_tables_for_reopen(thd, &table_list, start_of_statement_svp); + + DEBUG_SYNC(thd, "multi_update_reopen_tables"); + goto reopen_tables; } @@ -1862,6 +1866,7 @@ void multi_update::abort() into repl event. */ int errcode= query_error_code(thd, thd->killed == THD::NOT_KILLED); + /* the error of binary logging is ignored */ (void)thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), thd->query_length(), transactional_tables, FALSE, FALSE, errcode); |