summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc7
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);