mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
This commit is contained in:
@ -376,11 +376,12 @@ int ha_finalize_handlerton(st_plugin_int *plugin)
|
|||||||
case SHOW_OPTION_YES:
|
case SHOW_OPTION_YES:
|
||||||
if (installed_htons[hton->db_type] == hton)
|
if (installed_htons[hton->db_type] == hton)
|
||||||
installed_htons[hton->db_type]= NULL;
|
installed_htons[hton->db_type]= NULL;
|
||||||
if (hton->panic && hton->panic(hton, HA_PANIC_CLOSE))
|
|
||||||
DBUG_RETURN(1);
|
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (hton->panic)
|
||||||
|
hton->panic(hton, HA_PANIC_CLOSE);
|
||||||
|
|
||||||
if (plugin->plugin->deinit)
|
if (plugin->plugin->deinit)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -509,32 +510,23 @@ int ha_init()
|
|||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
int ha_end()
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
handlerton *hton= (handlerton *)plugin->data;
|
int error= 0;
|
||||||
if (hton->state == SHOW_OPTION_YES && hton->panic)
|
DBUG_ENTER("ha_end");
|
||||||
((int*)arg)[0]|= hton->panic(hton, (enum ha_panic_function)((int*)arg)[1]);
|
|
||||||
return FALSE;
|
|
||||||
|
/*
|
||||||
|
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;
|
||||||
|
|
||||||
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
if (flag == HA_PANIC_CLOSE && ha_finish_errors())
|
|
||||||
error[0]= 1;
|
|
||||||
return error[0];
|
|
||||||
} /* ha_panic */
|
|
||||||
|
|
||||||
static my_bool dropdb_handlerton(THD *unused1, st_plugin_int *plugin,
|
static my_bool dropdb_handlerton(THD *unused1, st_plugin_int *plugin,
|
||||||
void *path)
|
void *path)
|
||||||
{
|
{
|
||||||
|
@ -1654,6 +1654,7 @@ static inline bool ha_storage_engine_is_enabled(const handlerton *db_type)
|
|||||||
|
|
||||||
/* basic stuff */
|
/* basic stuff */
|
||||||
int ha_init(void);
|
int ha_init(void);
|
||||||
|
int ha_end(void);
|
||||||
int ha_initialize_handlerton(st_plugin_int *plugin);
|
int ha_initialize_handlerton(st_plugin_int *plugin);
|
||||||
int ha_finalize_handlerton(st_plugin_int *plugin);
|
int ha_finalize_handlerton(st_plugin_int *plugin);
|
||||||
|
|
||||||
|
@ -1186,7 +1186,6 @@ void clean_up(bool print_message)
|
|||||||
lex_free(); /* Free some memory */
|
lex_free(); /* Free some memory */
|
||||||
set_var_free();
|
set_var_free();
|
||||||
free_charsets();
|
free_charsets();
|
||||||
(void) ha_panic(HA_PANIC_CLOSE); /* close all tables and logs */
|
|
||||||
if (!opt_noacl)
|
if (!opt_noacl)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_DLOPEN
|
#ifdef HAVE_DLOPEN
|
||||||
@ -1194,6 +1193,7 @@ void clean_up(bool print_message)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
plugin_shutdown();
|
plugin_shutdown();
|
||||||
|
ha_end();
|
||||||
if (tc_log)
|
if (tc_log)
|
||||||
tc_log->close();
|
tc_log->close();
|
||||||
xid_cache_free();
|
xid_cache_free();
|
||||||
|
Reference in New Issue
Block a user