diff options
author | unknown <jimw@mysql.com> | 2005-04-15 11:52:35 -0700 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-04-15 11:52:35 -0700 |
commit | 484943a2af82eaa19218b22a507631453b0d0aab (patch) | |
tree | c071f44560899c50e15a9e969fa6b296185f8f13 | |
parent | 315f66c8e26a2ab8e427c60b3bc51c2cfa1c97f6 (diff) | |
parent | e687d6beae78b980d984fdbfb518c494295d5200 (diff) | |
download | mariadb-git-484943a2af82eaa19218b22a507631453b0d0aab.tar.gz |
Merge mysql.com:/home/jimw/my/mysql-4.1-9815
into mysql.com:/home/jimw/my/mysql-4.1-clean
-rw-r--r-- | sql/handler.cc | 14 | ||||
-rw-r--r-- | sql/handler.h | 1 | ||||
-rw-r--r-- | sql/mysqld.cc | 12 |
3 files changed, 27 insertions, 0 deletions
diff --git a/sql/handler.cc b/sql/handler.cc index b12032ccd81..7d8fc5d8110 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -145,6 +145,20 @@ const char *ha_get_storage_engine(enum db_type db_type) 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 */ enum db_type ha_checktype(enum db_type database_type) diff --git a/sql/handler.h b/sql/handler.h index 4c31da6a492..d2f77c4149a 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -542,6 +542,7 @@ int ha_init(void); int ha_panic(enum ha_panic_function flag); void ha_close_connection(THD* thd); 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, bool update_create_info); int ha_create_table_from_engine(THD* thd, const char *db, const char *name, diff --git a/sql/mysqld.cc b/sql/mysqld.cc index b568b75fbad..41e3069a6c0 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -6435,6 +6435,18 @@ static void get_options(int argc,char **argv) sql_print_warning("this binary does not contain BDB storage engine"); #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) { fprintf(stderr, "%s: Too many arguments (first extra is '%s').\nUse --help to get a list of available options\n", my_progname, *argv); |