Commit 886b8603 authored by jimw@mysql.com's avatar jimw@mysql.com

Merge mysql.com:/home/jimw/my/mysql-4.1-9815

into mysql.com:/home/jimw/my/mysql-4.1-clean
parents 77f6f5b1 6632ed5c
...@@ -145,6 +145,20 @@ const char *ha_get_storage_engine(enum db_type db_type) ...@@ -145,6 +145,20 @@ const char *ha_get_storage_engine(enum db_type db_type)
return "none"; return "none";
} }
my_bool ha_storage_engine_is_enabled(enum db_type database_type)
{
show_table_type_st *types;
for (types= sys_table_types; types->type; types++)
{
if ((database_type == types->db_type) &&
(*types->value == SHOW_OPTION_YES))
return TRUE;
}
return FALSE;
}
/* Use other database handler if databasehandler is not incompiled */ /* Use other database handler if databasehandler is not incompiled */
enum db_type ha_checktype(enum db_type database_type) enum db_type ha_checktype(enum db_type database_type)
......
...@@ -542,6 +542,7 @@ int ha_init(void); ...@@ -542,6 +542,7 @@ int ha_init(void);
int ha_panic(enum ha_panic_function flag); int ha_panic(enum ha_panic_function flag);
void ha_close_connection(THD* thd); void ha_close_connection(THD* thd);
enum db_type ha_checktype(enum db_type database_type); enum db_type ha_checktype(enum db_type database_type);
my_bool ha_storage_engine_is_enabled(enum db_type database_type);
int ha_create_table(const char *name, HA_CREATE_INFO *create_info, int ha_create_table(const char *name, HA_CREATE_INFO *create_info,
bool update_create_info); bool update_create_info);
int ha_create_table_from_engine(THD* thd, const char *db, const char *name, int ha_create_table_from_engine(THD* thd, const char *db, const char *name,
......
...@@ -6435,6 +6435,18 @@ static void get_options(int argc,char **argv) ...@@ -6435,6 +6435,18 @@ static void get_options(int argc,char **argv)
sql_print_warning("this binary does not contain BDB storage engine"); sql_print_warning("this binary does not contain BDB storage engine");
#endif #endif
/*
Check that the default storage engine is actually available.
*/
if (!ha_storage_engine_is_enabled((enum db_type)
global_system_variables.table_type))
{
sql_print_error("Default storage engine (%s) is not available",
ha_get_storage_engine((enum db_type)
global_system_variables.table_type));
exit(1);
}
if (argc > 0) if (argc > 0)
{ {
fprintf(stderr, "%s: Too many arguments (first extra is '%s').\nUse --help to get a list of available options\n", my_progname, *argv); fprintf(stderr, "%s: Too many arguments (first extra is '%s').\nUse --help to get a list of available options\n", my_progname, *argv);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment