Loading sql/handler.cc +15 −23 Original line number Diff line number Diff line Loading @@ -376,11 +376,12 @@ int ha_finalize_handlerton(st_plugin_int *plugin) case SHOW_OPTION_YES: if (installed_htons[hton->db_type] == hton) installed_htons[hton->db_type]= NULL; if (hton->panic && hton->panic(hton, HA_PANIC_CLOSE)) DBUG_RETURN(1); break; }; if (hton->panic) hton->panic(hton, HA_PANIC_CLOSE); if (plugin->plugin->deinit) { /* Loading Loading @@ -509,31 +510,22 @@ int ha_init() DBUG_RETURN(error); } /* close, flush or restart databases Ignore this for other databases than ours */ static my_bool panic_handlerton(THD *unused1, st_plugin_int *plugin, void *arg) int ha_end() { handlerton *hton= (handlerton *)plugin->data; if (hton->state == SHOW_OPTION_YES && hton->panic) ((int*)arg)[0]|= hton->panic(hton, (enum ha_panic_function)((int*)arg)[1]); return FALSE; } int error= 0; DBUG_ENTER("ha_end"); int ha_panic(enum ha_panic_function flag) { int error[2]; error[0]= 0; error[1]= (int)flag; plugin_foreach(NULL, panic_handlerton, MYSQL_STORAGE_ENGINE_PLUGIN, error); /* This should be eventualy based on the graceful shutdown flag. So if flag is equal to HA_PANIC_CLOSE, the deallocate the errors. */ if (ha_finish_errors()) error= 1; if (flag == HA_PANIC_CLOSE && ha_finish_errors()) error[0]= 1; return error[0]; } /* ha_panic */ DBUG_RETURN(error); } static my_bool dropdb_handlerton(THD *unused1, st_plugin_int *plugin, void *path) Loading sql/handler.h +1 −0 Original line number Diff line number Diff line Loading @@ -1654,6 +1654,7 @@ static inline bool ha_storage_engine_is_enabled(const handlerton *db_type) /* basic stuff */ int ha_init(void); int ha_end(void); int ha_initialize_handlerton(st_plugin_int *plugin); int ha_finalize_handlerton(st_plugin_int *plugin); Loading sql/mysqld.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1186,7 +1186,6 @@ void clean_up(bool print_message) lex_free(); /* Free some memory */ set_var_free(); free_charsets(); (void) ha_panic(HA_PANIC_CLOSE); /* close all tables and logs */ if (!opt_noacl) { #ifdef HAVE_DLOPEN Loading @@ -1194,6 +1193,7 @@ void clean_up(bool print_message) #endif } plugin_shutdown(); ha_end(); if (tc_log) tc_log->close(); xid_cache_free(); Loading Loading
sql/handler.cc +15 −23 Original line number Diff line number Diff line Loading @@ -376,11 +376,12 @@ int ha_finalize_handlerton(st_plugin_int *plugin) case SHOW_OPTION_YES: if (installed_htons[hton->db_type] == hton) installed_htons[hton->db_type]= NULL; if (hton->panic && hton->panic(hton, HA_PANIC_CLOSE)) DBUG_RETURN(1); break; }; if (hton->panic) hton->panic(hton, HA_PANIC_CLOSE); if (plugin->plugin->deinit) { /* Loading Loading @@ -509,31 +510,22 @@ int ha_init() DBUG_RETURN(error); } /* close, flush or restart databases Ignore this for other databases than ours */ static my_bool panic_handlerton(THD *unused1, st_plugin_int *plugin, void *arg) int ha_end() { handlerton *hton= (handlerton *)plugin->data; if (hton->state == SHOW_OPTION_YES && hton->panic) ((int*)arg)[0]|= hton->panic(hton, (enum ha_panic_function)((int*)arg)[1]); return FALSE; } int error= 0; DBUG_ENTER("ha_end"); int ha_panic(enum ha_panic_function flag) { int error[2]; error[0]= 0; error[1]= (int)flag; plugin_foreach(NULL, panic_handlerton, MYSQL_STORAGE_ENGINE_PLUGIN, error); /* This should be eventualy based on the graceful shutdown flag. So if flag is equal to HA_PANIC_CLOSE, the deallocate the errors. */ if (ha_finish_errors()) error= 1; if (flag == HA_PANIC_CLOSE && ha_finish_errors()) error[0]= 1; return error[0]; } /* ha_panic */ DBUG_RETURN(error); } static my_bool dropdb_handlerton(THD *unused1, st_plugin_int *plugin, void *path) Loading
sql/handler.h +1 −0 Original line number Diff line number Diff line Loading @@ -1654,6 +1654,7 @@ static inline bool ha_storage_engine_is_enabled(const handlerton *db_type) /* basic stuff */ int ha_init(void); int ha_end(void); int ha_initialize_handlerton(st_plugin_int *plugin); int ha_finalize_handlerton(st_plugin_int *plugin); Loading
sql/mysqld.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1186,7 +1186,6 @@ void clean_up(bool print_message) lex_free(); /* Free some memory */ set_var_free(); free_charsets(); (void) ha_panic(HA_PANIC_CLOSE); /* close all tables and logs */ if (!opt_noacl) { #ifdef HAVE_DLOPEN Loading @@ -1194,6 +1193,7 @@ void clean_up(bool print_message) #endif } plugin_shutdown(); ha_end(); if (tc_log) tc_log->close(); xid_cache_free(); Loading