Commit 8d919770 authored by monty@mishka.local's avatar monty@mishka.local

Fixed core dump with long timezone names

Don't abort on bootstrap if a wrong --default-storage-engine is specified
parent ab939dce
...@@ -163,13 +163,8 @@ my_bool ha_storage_engine_is_enabled(enum db_type database_type) ...@@ -163,13 +163,8 @@ my_bool ha_storage_engine_is_enabled(enum db_type database_type)
enum db_type ha_checktype(enum db_type database_type) enum db_type ha_checktype(enum db_type database_type)
{ {
show_table_type_st *types; if (ha_storage_engine_is_enabled(database_type))
for (types= sys_table_types; types->type; types++)
{
if ((database_type == types->db_type) &&
(*types->value == SHOW_OPTION_YES))
return database_type; return database_type;
}
switch (database_type) { switch (database_type) {
#ifndef NO_HASH #ifndef NO_HASH
......
...@@ -2426,7 +2426,9 @@ static int init_common_variables(const char *conf_file_name, int argc, ...@@ -2426,7 +2426,9 @@ static int init_common_variables(const char *conf_file_name, int argc,
{ {
struct tm tm_tmp; struct tm tm_tmp;
localtime_r(&start_time,&tm_tmp); localtime_r(&start_time,&tm_tmp);
strmov(system_time_zone, tzname[tm_tmp.tm_isdst != 0 ? 1 : 0]); strmake(system_time_zone, tzname[tm_tmp.tm_isdst != 0 ? 1 : 0],
sizeof(system_time_zone)-1);
} }
#endif #endif
/* /*
...@@ -3081,7 +3083,8 @@ we force server id to 2, but this MySQL server will not act as a slave."); ...@@ -3081,7 +3083,8 @@ we force server id to 2, but this MySQL server will not act as a slave.");
if (opt_bootstrap) if (opt_bootstrap)
{ {
int error=bootstrap(stdin); select_thread_in_use= 0; // Allow 'kill' to work
int error= bootstrap(stdin);
end_thr_alarm(1); // Don't allow alarms end_thr_alarm(1); // Don't allow alarms
unireg_abort(error ? 1 : 0); unireg_abort(error ? 1 : 0);
} }
...@@ -6184,9 +6187,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -6184,9 +6187,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case OPT_STORAGE_ENGINE: case OPT_STORAGE_ENGINE:
{ {
if ((enum db_type)((global_system_variables.table_type= if ((enum db_type)((global_system_variables.table_type=
ha_resolve_by_name(argument, strlen(argument)))) == DB_TYPE_UNKNOWN) ha_resolve_by_name(argument, strlen(argument)))) ==
DB_TYPE_UNKNOWN)
{ {
fprintf(stderr,"Unknown table type: %s\n",argument); fprintf(stderr,"Unknown/unsupported table type: %s\n",argument);
exit(1); exit(1);
} }
break; break;
...@@ -6441,12 +6445,16 @@ static void get_options(int argc,char **argv) ...@@ -6441,12 +6445,16 @@ static void get_options(int argc,char **argv)
*/ */
if (!ha_storage_engine_is_enabled((enum db_type) if (!ha_storage_engine_is_enabled((enum db_type)
global_system_variables.table_type)) global_system_variables.table_type))
{
if (!opt_bootstrap)
{ {
sql_print_error("Default storage engine (%s) is not available", sql_print_error("Default storage engine (%s) is not available",
ha_get_storage_engine((enum db_type) ha_get_storage_engine((enum db_type)
global_system_variables.table_type)); global_system_variables.table_type));
exit(1); exit(1);
} }
global_system_variables.table_type= DB_TYPE_MYISAM;
}
if (argc > 0) if (argc > 0)
{ {
......
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