summaryrefslogtreecommitdiff
path: root/sql/sql_delete.cc
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2002-04-08 18:20:24 -0600
committerunknown <sasha@mysql.sashanet.com>2002-04-08 18:20:24 -0600
commitfc79f8e68ac81dfa0841c3a5899d4bed905f35c5 (patch)
treea29549e01f5f40479b43c1a0dc2f11c3c89c8f71 /sql/sql_delete.cc
parentd85cacfa63eeaeebb4e23c9c85c8fcd2de3712cb (diff)
downloadmariadb-git-fc79f8e68ac81dfa0841c3a5899d4bed905f35c5.tar.gz
fixed bug in truncating temp tables
fixed compilation problem on FreeBSD added test for truncating temporary tables mysql-test/r/truncate.result: truncate test mysql-test/t/truncate.test: truncate test update mysys/safemalloc.c: fixed FreeBSD compilation problem sql/sql_delete.cc: fixed bug in truncating temporary tables
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r--sql/sql_delete.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index 89e30f31fd5..f5a5a684fc0 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -520,7 +520,11 @@ int mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok)
if ((error= (int) !(open_temporary_table(thd, path, table_list->db,
table_list->real_name, 1))))
(void) rm_temporary_table(table_type, path);
- DBUG_RETURN(error ? -1 : 0);
+ /* Sasha: if we return here we will not have binloged the truncation and
+ we will not send_ok() to the client. Yes, we do need better coverage
+ testing, this bug has been here for a few months :-).
+ */
+ goto end;
}
(void) sprintf(path,"%s/%s/%s%s",mysql_data_home,table_list->db,
@@ -549,7 +553,7 @@ int mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok)
*fn_ext(path)=0; // Remove the .frm extension
error= ha_create_table(path,&create_info,1) ? -1 : 0;
query_cache_invalidate3(thd, table_list, 0);
-
+end:
if (!dont_send_ok)
{
if (!error)