diff options
author | unknown <igor@rurik.mysql.com> | 2003-12-11 14:55:48 -0800 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2003-12-11 14:55:48 -0800 |
commit | 9570d010d571d62a9cbdc9674606b1f154b4dead (patch) | |
tree | 27bbc53533e288c5402000d6358fe6b91ed1eb32 /sql/sql_delete.cc | |
parent | 28b1f63aa7f6ed40d68c932cfe33420c12c7347d (diff) | |
download | mariadb-git-9570d010d571d62a9cbdc9674606b1f154b4dead.tar.gz |
Many files:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
sql/sql_class.h:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
sql/sql_delete.cc:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
sql/sql_update.cc:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
mysql-test/t/multi_update.test:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
mysql-test/r/multi_update.result:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r-- | sql/sql_delete.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index ee2b720907d..399f237bf2f 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -236,7 +236,8 @@ multi_delete::multi_delete(THD *thd_arg, TABLE_LIST *dt, uint num_of_tables_arg) : delete_tables(dt), thd(thd_arg), deleted(0), num_of_tables(num_of_tables_arg), error(0), - do_delete(0), transactional_tables(0), log_delayed(0), normal_tables(0) + do_delete(0), transactional_tables(0), log_delayed(0), normal_tables(0), + tempfiles_inited(0) { tempfiles = (Unique **) sql_calloc(sizeof(Unique *) * (num_of_tables-1)); } @@ -297,6 +298,7 @@ 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); } @@ -422,6 +424,8 @@ int multi_delete::do_deletes(bool from_send_error) table_being_deleted = delete_tables; do_delete= 0; + if (!tempfiles_inited) + DBUG_RETURN(0); for (table_being_deleted=table_being_deleted->next; table_being_deleted ; table_being_deleted=table_being_deleted->next, counter++) |