diff options
-rw-r--r-- | mysys/my_getopt.c | 47 | ||||
-rw-r--r-- | sql/mysqld.cc | 21 |
2 files changed, 41 insertions, 27 deletions
diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index f0e289d6af9..9b516559936 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -94,34 +94,34 @@ int handle_options(int *argc, char ***argv, option_is_loose= 0; cur_arg++; /* skip '-' */ - if (*cur_arg == 'O') - { - must_be_var= 1; - - if (!(*++cur_arg)) /* If not -Ovar=# */ + if (*cur_arg == '-' || *cur_arg == 'O') /* check for long option, */ + { /* --set-variable, or -O */ + if (*cur_arg == 'O') { - /* the argument must be in next argv */ - if (!*++pos) + must_be_var= 1; + + if (!(*++cur_arg)) /* If not -Ovar=# */ { - fprintf(stderr, "%s: Option '-O' requires an argument\n", - progname); - return ERR_ARGUMENT_REQUIRED; + /* the argument must be in next argv */ + if (!*++pos) + { + fprintf(stderr, "%s: Option '-O' requires an argument\n", + progname); + return ERR_ARGUMENT_REQUIRED; + } + cur_arg= *pos; + (*argc)--; } - cur_arg= *pos; - (*argc)--; } - /* Sasha: quick dirty fix of a bug that coredumps mysqladmin while - running the test suite. The bug is actually pretty serious - - even in cases when we do not coredump, -O var=val will not set - the variable, and the previous option would be treated upredictably. - */ - goto found_var; - } - else if (*cur_arg == '-') /* check for long option, or --set-variable */ - { - if (!compare_strings(cur_arg, "-set-variable", 13)) + else if (!compare_strings(cur_arg, "-set-variable", 13) || + !compare_strings(cur_arg, "-loose-set-variable", 19)) { must_be_var= 1; + if (cur_arg[1] == 'l') + { + option_is_loose= 1; + cur_arg+= 6; + } if (cur_arg[13] == '=') { cur_arg+= 14; @@ -159,7 +159,6 @@ int handle_options(int *argc, char ***argv, continue; } } - found_var: optend= strcend(cur_arg, '='); length= optend - cur_arg; if (*optend == '=') @@ -280,7 +279,7 @@ int handle_options(int *argc, char ***argv, Set bool to 1 if no argument or if the user has used --enable-'option-name'. *optend was set to '0' if one used --disable-option - */ + */ *((my_bool*) optp->value)= (my_bool) (!optend || *optend == '1'); (*argc)--; continue; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index bdcef2f207f..9bbac7bdb0b 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2806,7 +2806,20 @@ enum options { OPT_SORT_BUFFER, OPT_TABLE_CACHE, OPT_THREAD_CONCURRENCY, OPT_THREAD_CACHE_SIZE, OPT_TMP_TABLE_SIZE, OPT_THREAD_STACK, - OPT_WAIT_TIMEOUT + OPT_WAIT_TIMEOUT, + OPT_INNODB_MIRRORED_LOG_GROUPS, + OPT_INNODB_LOG_FILES_IN_GROUP, + OPT_INNODB_LOG_FILE_SIZE, + OPT_INNODB_LOG_BUFFER_SIZE, + OPT_INNODB_BUFFER_POOL_SIZE, + OPT_INNODB_ADDITIONAL_MEM_POOL_SIZE, + OPT_INNODB_FILE_IO_THREADS, + OPT_INNODB_LOCK_WAIT_TIMEOUT, + OPT_INNODB_THREAD_CONCURRENCY, + OPT_INNODB_FORCE_RECOVERY, + OPT_BDB_CACHE_SIZE, + OPT_BDB_LOG_BUFFER_SIZE, + OPT_BDB_MAX_LOCK }; @@ -2945,7 +2958,7 @@ static struct my_option my_long_options[] = 0, 0, 0}, {"innodb_fast_shutdown", OPT_INNODB_FAST_SHUTDOWN, "Speeds up server shutdown process", (gptr*) &innobase_fast_shutdown, - (gptr*) &innobase_fast_shutdown, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, + (gptr*) &innobase_fast_shutdown, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0}, #endif /* End HAVE_INNOBASE_DB */ {"help", '?', "Display this help and exit", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, @@ -3040,6 +3053,7 @@ static struct my_option my_long_options[] = */ {"memlock", OPT_MEMLOCK, "Lock mysqld in memory", (gptr*) &locked_in_memory, (gptr*) &locked_in_memory, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, +#ifndef DBUG_OFF {"disconnect-slave-event-count", OPT_DISCONNECT_SLAVE_EVENT_COUNT, "Undocumented: Meant for debugging and testing of replication", (gptr*) &disconnect_slave_event_count, @@ -3056,6 +3070,7 @@ static struct my_option my_long_options[] = (gptr*) &opt_sporadic_binlog_dump_fail, (gptr*) &opt_sporadic_binlog_dump_fail, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, +#endif {"safemalloc-mem-limit", OPT_SAFEMALLOC_MEM_LIMIT, "Simulate memory shortage when compiled with the --with-debug=full option", 0, 0, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, @@ -3243,7 +3258,7 @@ static struct my_option my_long_options[] = REQUIRED_ARG, 50, 1, 65535, 0, 1, 0 }, #ifdef HAVE_BERKELEY_DB { "bdb_cache_size", OPT_BDB_CACHE_SIZE, - "The buffer that is allocated to cache index and rows for BDB tables." + "The buffer that is allocated to cache index and rows for BDB tables.", (gptr*) &berkeley_cache_size, (gptr*) &berkeley_cache_size, 0, GET_ULONG, REQUIRED_ARG, KEY_CACHE_SIZE, 20*1024, (long) ~0, 0, IO_SIZE, 0}, {"bdb_log_buffer_size", OPT_BDB_LOG_BUFFER_SIZE, |