diff options
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_class.h | 4 | ||||
-rw-r--r-- | sql/sql_delete.cc | 11 | ||||
-rw-r--r-- | sql/sql_update.cc | 5 |
3 files changed, 8 insertions, 12 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h index c487e212e24..0d0e0d7fbc5 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -844,11 +844,10 @@ class multi_delete : public select_result TABLE_LIST *delete_tables, *table_being_deleted; Unique **tempfiles; THD *thd; - ha_rows deleted; + ha_rows deleted, found; uint num_of_tables; int error; bool do_delete, transactional_tables, log_delayed, normal_tables; - bool tempfiles_inited; public: multi_delete(THD *thd, TABLE_LIST *dt, uint num_of_tables); @@ -876,7 +875,6 @@ class multi_update : public select_result Copy_field *copy_field; enum enum_duplicates handle_duplicates; bool do_update, trans_safe, transactional_tables, log_delayed; - bool tmp_tables_inited; public: multi_update(THD *thd_arg, TABLE_LIST *ut, List<Item> *fields, diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 399f237bf2f..bdf2cf85749 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -234,10 +234,9 @@ extern "C" int refposcmp2(void* arg, const void *a,const void *b) multi_delete::multi_delete(THD *thd_arg, TABLE_LIST *dt, uint num_of_tables_arg) - : delete_tables(dt), thd(thd_arg), deleted(0), + : delete_tables(dt), thd(thd_arg), deleted(0), found(0), num_of_tables(num_of_tables_arg), error(0), - do_delete(0), transactional_tables(0), log_delayed(0), normal_tables(0), - tempfiles_inited(0) + do_delete(0), transactional_tables(0), log_delayed(0), normal_tables(0) { tempfiles = (Unique **) sql_calloc(sizeof(Unique *) * (num_of_tables-1)); } @@ -298,7 +297,6 @@ multi_delete::initialize_tables(JOIN *join) table->file->ref_length, MEM_STRIP_BUF_SIZE); } - tempfiles_inited= 1; init_ftfuncs(thd,1); DBUG_RETURN(thd->fatal_error != 0); } @@ -339,6 +337,7 @@ bool multi_delete::send_data(List<Item> &values) continue; table->file->position(table->record[0]); + found++; if (secure_counter < 0) { @@ -414,7 +413,7 @@ int multi_delete::do_deletes(bool from_send_error) if (from_send_error) { - /* Found out table number for 'table_being_deleted' */ + /* Found out table number for 'table_being_deleted*/ for (TABLE_LIST *aux=delete_tables; aux != table_being_deleted; aux=aux->next) @@ -424,7 +423,7 @@ int multi_delete::do_deletes(bool from_send_error) table_being_deleted = delete_tables; do_delete= 0; - if (!tempfiles_inited) + if (!found) DBUG_RETURN(0); for (table_being_deleted=table_being_deleted->next; table_being_deleted ; diff --git a/sql/sql_update.cc b/sql/sql_update.cc index f79a9669a50..36ceef23740 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -440,7 +440,7 @@ multi_update::multi_update(THD *thd_arg, TABLE_LIST *table_list, :all_tables(table_list), update_tables(0), thd(thd_arg), tmp_tables(0), updated(0), found(0), fields(field_list), values(value_list), table_count(0), copy_field(0), handle_duplicates(handle_duplicates_arg), - do_update(1), trans_safe(0), tmp_tables_inited(0) + do_update(1), trans_safe(0) {} @@ -642,7 +642,6 @@ multi_update::initialize_tables(JOIN *join) DBUG_RETURN(1); tmp_tables[cnt]->file->extra(HA_EXTRA_WRITE_CACHE); } - tmp_tables_inited= 1; DBUG_RETURN(0); } @@ -843,7 +842,7 @@ int multi_update::do_updates(bool from_send_error) do_update= 0; // Don't retry this function - if (!tmp_tables_inited) + if (!found) DBUG_RETURN(0); for (cur_table= update_tables; cur_table ; cur_table= cur_table->next) { |