From ea9014043b3c809e210bc8a2c80fb253359ad7f3 Mon Sep 17 00:00:00 2001 From: "mikael/pappa@dator5.(none)" <> Date: Tue, 19 Sep 2006 11:40:21 -0400 Subject: [PATCH] Close the DDL log from 2 places => put into separate method Needed to close ddl log in recovery before deleting it --- sql/sql_table.cc | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 610771724e1..2500ea46c3e 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1132,6 +1132,26 @@ bool execute_ddl_log_entry(THD *thd, uint first_entry) } +/* + Close the ddl log + SYNOPSIS + close_ddl_log() + RETURN VALUES + NONE +*/ + +static void close_ddl_log() +{ + DBUG_ENTER("close_ddl_log"); + if (global_ddl_log.file_id >= 0) + { + VOID(my_close(global_ddl_log.file_id, MYF(MY_WME))); + global_ddl_log.file_id= (File) -1; + } + DBUG_VOID_RETURN; +} + + /* Execute the ddl log at recovery of MySQL Server SYNOPSIS @@ -1183,6 +1203,7 @@ void execute_ddl_log_recovery() } } } + close_ddl_log(); create_ddl_log_file_name(file_name); VOID(my_delete(file_name, MYF(0))); global_ddl_log.recovery_phase= FALSE; @@ -1220,11 +1241,7 @@ void release_ddl_log() my_free((char*)free_list, MYF(0)); free_list= tmp; } - if (global_ddl_log.file_id >= 0) - { - VOID(my_close(global_ddl_log.file_id, MYF(MY_WME))); - global_ddl_log.file_id= (File) -1; - } + close_ddl_log(); global_ddl_log.inited= 0; pthread_mutex_unlock(&LOCK_gdl); VOID(pthread_mutex_destroy(&LOCK_gdl));