From fb0145c55c9c9896e448c1d83ee0d9fdb3806876 Mon Sep 17 00:00:00 2001 From: "mats@mysql.com" <> Date: Mon, 9 Jan 2006 09:37:21 +0100 Subject: [PATCH] Bug#15923 (Test ps_7ndb cause master crash): Always log statements "DELETE FROM x" statement-based. --- sql/sql_delete.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index c5b5958140b..fd74fc5adc4 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -79,6 +79,10 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, !(table->triggers && table->triggers->has_delete_triggers())) { ha_rows const maybe_deleted= table->file->records; + /* + If all rows shall be deleted, we always log this statement-based + (see [binlog], below), so we set this flag and test it below. + */ ha_delete_all_rows= 1; if (!(error=table->file->delete_all_rows())) { @@ -315,9 +319,9 @@ cleanup: thd->clear_error(); /* - If 'handler::delete_all_rows()' was called, we replicate - statement-based; otherwise, 'ha_delete_row()' was used to - delete specific rows which we might log row-based. + [binlog]: If 'handler::delete_all_rows()' was called, we + replicate statement-based; otherwise, 'ha_delete_row()' was + used to delete specific rows which we might log row-based. */ THD::enum_binlog_query_type const query_type(ha_delete_all_rows ?