From fc79f8e68ac81dfa0841c3a5899d4bed905f35c5 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 8 Apr 2002 18:20:24 -0600 Subject: 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 --- sql/sql_delete.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sql/sql_delete.cc') 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) -- cgit v1.2.1