From: Kristofer Pettersson Date: October 25 2010 4:22pm Subject: bzr push into mysql-5.5-bugteam branch (kristofer.pettersson:3096) List-Archive: http://lists.mysql.com/commits/121849 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3096 Kristofer Pettersson 2010-10-25 [merge] automerge removed: mysql-test/suite/rpl/t/rpl_mixed_binlog_max_cache_size-master.opt mysql-test/suite/rpl/t/rpl_row_binlog_max_cache_size-master.opt mysql-test/suite/rpl/t/rpl_stm_binlog_max_cache_size-master.opt storage/innobase/handler/mysql_addons.cc storage/innobase/include/mysql_addons.h storage/innobase/mysql-test/ storage/innobase/mysql-test/patches/ storage/innobase/mysql-test/patches/README storage/innobase/mysql-test/patches/index_merge_innodb-explain.diff storage/innobase/mysql-test/patches/information_schema.diff storage/innobase/mysql-test/patches/innodb_change_buffering_basic.diff storage/innobase/mysql-test/patches/innodb_file_per_table.diff storage/innobase/mysql-test/patches/innodb_lock_wait_timeout.diff storage/innobase/mysql-test/patches/innodb_thread_concurrency_basic.diff storage/innobase/mysql-test/patches/partition_innodb.diff added: include/welcome_copyright_notice.h mysql-test/extra/rpl_tests/rpl_stop_slave.test mysql-test/include/have_plugin_interface.inc mysql-test/include/have_plugin_server.inc mysql-test/r/lowercase_table4.result mysql-test/r/plugin_auth_qa.result mysql-test/r/plugin_auth_qa_1.result mysql-test/r/plugin_auth_qa_2.result mysql-test/r/plugin_auth_qa_3.result mysql-test/r/plugin_load_option.result mysql-test/suite/innodb/r/innodb-truncate.result mysql-test/suite/innodb/r/innodb_bug56143.result mysql-test/suite/innodb/r/innodb_bug56632.result mysql-test/suite/innodb/r/innodb_bug56680.result mysql-test/suite/innodb/r/innodb_bug57252.result mysql-test/suite/innodb/t/innodb-truncate.test mysql-test/suite/innodb/t/innodb_bug56143.test mysql-test/suite/innodb/t/innodb_bug56632.test mysql-test/suite/innodb/t/innodb_bug56680.test mysql-test/suite/innodb/t/innodb_bug57252.test mysql-test/suite/rpl/r/rpl_stop_slave.result mysql-test/suite/rpl/t/rpl_stop_slave.test mysql-test/t/lowercase_table4-master.opt mysql-test/t/lowercase_table4.test mysql-test/t/plugin_auth_qa-master.opt mysql-test/t/plugin_auth_qa.test mysql-test/t/plugin_auth_qa_1-master.opt mysql-test/t/plugin_auth_qa_1.test mysql-test/t/plugin_auth_qa_2-master.opt mysql-test/t/plugin_auth_qa_2.test mysql-test/t/plugin_auth_qa_3-master.opt mysql-test/t/plugin_auth_qa_3.test mysql-test/t/plugin_load_option-master.opt mysql-test/t/plugin_load_option.test plugin/auth/qa_auth_client.c plugin/auth/qa_auth_interface.c plugin/auth/qa_auth_server.c renamed: config/ac-macros/ha_ndbcluster.m4 => storage/ndb/ndb_configure.m4 modified: BUILD/SETUP.sh CMakeLists.txt Makefile.am client/mysql.cc client/mysql_upgrade.c client/mysqladmin.cc client/mysqlbinlog.cc client/mysqlcheck.c client/mysqldump.c client/mysqlimport.c client/mysqlshow.c client/mysqlslap.c client/mysqltest.cc client/sql_string.h cmake/abi_check.cmake cmake/build_configurations/mysql_release.cmake cmake/install_layout.cmake cmake/os/Linux.cmake cmd-line-utils/libedit/common.c cmd-line-utils/libedit/readline.c cmd-line-utils/libedit/vi.c cmd-line-utils/readline/complete.c cmd-line-utils/readline/histexpand.c cmd-line-utils/readline/histfile.c cmd-line-utils/readline/isearch.c cmd-line-utils/readline/parens.c cmd-line-utils/readline/readline.c cmd-line-utils/readline/terminal.c cmd-line-utils/readline/text.c config/ac-macros/maintainer.m4 configure.cmake configure.in dbug/dbug.c include/my_compiler.h include/my_dbug.h include/my_pthread.h include/mysql/client_plugin.h include/mysql/client_plugin.h.pp mysql-test/collections/default.experimental mysql-test/extra/rpl_tests/rpl_binlog_max_cache_size.test mysql-test/extra/rpl_tests/rpl_row_sp003.test mysql-test/extra/rpl_tests/rpl_start_stop_slave.test mysql-test/include/index_merge2.inc mysql-test/include/mtr_warnings.sql mysql-test/mysql-test-run.pl mysql-test/r/cache_innodb.result mysql-test/r/delete.result mysql-test/r/func_math.result mysql-test/r/func_time.result mysql-test/r/grant.result mysql-test/r/grant3.result mysql-test/r/index_merge_myisam.result mysql-test/r/information_schema.result mysql-test/r/ipv4_as_ipv6.result mysql-test/r/lock_sync.result mysql-test/r/mdl_sync.result mysql-test/r/merge.result mysql-test/r/mysqlcheck.result mysql-test/r/query_cache_debug.result mysql-test/r/select.result mysql-test/r/sp-security.result mysql-test/r/sp_trans.result mysql-test/r/trigger-trans.result mysql-test/r/type_datetime.result mysql-test/suite/funcs_1/r/innodb_storedproc_06.result mysql-test/suite/funcs_1/r/is_columns_is.result mysql-test/suite/funcs_1/r/memory_storedproc_06.result mysql-test/suite/funcs_1/r/myisam_storedproc_06.result mysql-test/suite/funcs_1/storedproc/storedproc_06.inc mysql-test/suite/innodb/r/innodb-index.result mysql-test/suite/innodb/r/innodb-zip.result mysql-test/suite/innodb/r/innodb.result mysql-test/suite/innodb/r/innodb_bug52745.result mysql-test/suite/innodb/r/innodb_bug53591.result mysql-test/suite/innodb/r/innodb_file_format.result mysql-test/suite/innodb/r/innodb_mysql.result mysql-test/suite/innodb/t/innodb.test mysql-test/suite/innodb/t/innodb_mysql.test mysql-test/suite/parts/inc/partition_check.inc mysql-test/suite/parts/r/partition_alter3_innodb.result mysql-test/suite/parts/r/partition_basic_innodb.result mysql-test/suite/rpl/r/rpl_do_grant.result mysql-test/suite/rpl/r/rpl_heartbeat.result mysql-test/suite/rpl/r/rpl_heartbeat_basic.result mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_row_sp003.result mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result mysql-test/suite/rpl/t/rpl_do_grant.test mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test mysql-test/suite/sys_vars/r/all_vars.result mysql-test/suite/sys_vars/r/foreign_key_checks_func.result mysql-test/suite/sys_vars/r/innodb_file_format_basic.result mysql-test/suite/sys_vars/t/all_vars.test mysql-test/suite/sys_vars/t/foreign_key_checks_func.test mysql-test/t/cache_innodb.test mysql-test/t/delete.test mysql-test/t/disabled.def mysql-test/t/func_math.test mysql-test/t/func_time.test mysql-test/t/grant.test mysql-test/t/grant3.test mysql-test/t/information_schema.test mysql-test/t/lock_sync.test mysql-test/t/mdl_sync.test mysql-test/t/merge.test mysql-test/t/mysqlcheck.test mysql-test/t/query_cache_debug.test mysql-test/t/select.test mysql-test/t/sp-security.test mysql-test/t/sp_trans.test mysql-test/t/trigger-trans.test mysql-test/t/type_datetime.test mysys/my_gethostbyname.c mysys/my_gethwaddr.c mysys/my_sync.c mysys/thr_mutex.c plugin/auth/CMakeLists.txt plugin/auth/Makefile.am plugin/auth/dialog.c regex/main.c sql-common/client.c sql/field.cc sql/ha_ndbcluster.cc sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/item.cc sql/item_func.cc sql/item_strfunc.cc sql/item_timefunc.cc sql/item_timefunc.h sql/key.cc sql/log.cc sql/log_event.cc sql/log_event.h sql/my_decimal.h sql/mysqld.cc sql/repl_failsafe.cc sql/repl_failsafe.h sql/rpl_rli.h sql/scheduler.h sql/share/errmsg-utf8.txt sql/slave.cc sql/sp.cc sql/sp.h sql/sp_head.cc sql/sql_acl.cc sql/sql_base.cc sql/sql_cache.cc sql/sql_class.cc sql/sql_class.h sql/sql_delete.cc sql/sql_help.cc sql/sql_insert.cc sql/sql_lex.h sql/sql_parse.cc sql/sql_partition.cc sql/sql_partition_admin.cc sql/sql_partition_admin.h sql/sql_plugin.cc sql/sql_plugin.h sql/sql_show.cc sql/sql_show.h sql/sql_string.h sql/sql_truncate.cc sql/sql_truncate.h sql/sql_union.cc sql/sql_update.cc sql/sql_update.h sql/sql_yacc.yy sql/sys_vars.cc sql/sys_vars.h sql/table.h storage/archive/ha_archive.cc storage/archive/ha_archive.h storage/blackhole/ha_blackhole.cc storage/blackhole/ha_blackhole.h storage/example/ha_example.cc storage/example/ha_example.h storage/federated/ha_federated.cc storage/federated/ha_federated.h storage/heap/ha_heap.cc storage/heap/ha_heap.h storage/ibmdb2i/db2i_constraints.cc storage/ibmdb2i/ha_ibmdb2i.cc storage/innobase/CMakeLists.txt storage/innobase/Makefile.am storage/innobase/btr/btr0cur.c storage/innobase/buf/buf0buddy.c storage/innobase/buf/buf0buf.c storage/innobase/buf/buf0flu.c storage/innobase/buf/buf0lru.c storage/innobase/handler/ha_innodb.cc storage/innobase/handler/ha_innodb.h storage/innobase/ibuf/ibuf0ibuf.c storage/innobase/include/btr0cur.h storage/innobase/include/buf0buddy.h storage/innobase/include/buf0buddy.ic storage/innobase/include/buf0buf.h storage/innobase/include/buf0flu.h storage/innobase/include/data0type.h storage/innobase/include/ibuf0ibuf.h storage/innobase/include/os0sync.h storage/innobase/include/rem0rec.h storage/innobase/include/row0mysql.h storage/innobase/include/row0row.h storage/innobase/include/row0upd.h storage/innobase/include/srv0srv.h storage/innobase/include/trx0trx.h storage/innobase/lock/lock0lock.c storage/innobase/log/log0log.c storage/innobase/os/os0file.c storage/innobase/os/os0sync.c storage/innobase/plug.in storage/innobase/rem/rem0rec.c storage/innobase/row/row0mysql.c storage/innobase/row/row0sel.c storage/innobase/row/row0upd.c storage/innobase/srv/srv0srv.c storage/innobase/srv/srv0start.c storage/innobase/sync/sync0sync.c storage/innobase/trx/trx0i_s.c storage/innobase/trx/trx0trx.c storage/myisam/ha_myisam.cc storage/myisam/ha_myisam.h storage/myisam/myisamchk.c storage/myisammrg/ha_myisammrg.cc storage/myisammrg/ha_myisammrg.h storage/ndb/plug.in storage/perfschema/ha_perfschema.cc storage/perfschema/ha_perfschema.h strings/ctype-ucs2.c strings/my_vsnprintf.c unittest/examples/skip-t.c unittest/examples/skip_all-t.c unittest/examples/todo-t.c unittest/mytap/t/basic-t.c unittest/mytap/tap.c unittest/mytap/tap.h storage/ndb/ndb_configure.m4 === modified file 'include/my_getopt.h' --- a/include/my_getopt.h 2010-06-11 01:30:49 +0000 +++ b/include/my_getopt.h 2010-10-25 12:30:07 +0000 @@ -39,6 +39,13 @@ C_MODE_START #define GET_ASK_ADDR 128 #define GET_TYPE_MASK 127 +/** + Enumeration of the my_option::arg_type attributes. + It should be noted that for historical reasons variables with the combination + arg_type=NO_ARG, my_option::var_type=GET_BOOL still accepts + arguments. This is someone counter intuitive and care should be taken + if the code is refactored. +*/ enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG }; struct st_typelib; === modified file 'mysys/my_getopt.c' --- a/mysys/my_getopt.c 2010-09-28 15:15:58 +0000 +++ b/mysys/my_getopt.c 2010-10-25 12:30:07 +0000 @@ -360,14 +360,6 @@ int handle_options(int *argc, char ***ar } return EXIT_OPTION_DISABLED; } - if (must_be_var && optp->arg_type == NO_ARG) - { - if (my_getopt_print_errors) - my_getopt_error_reporter(ERROR_LEVEL, - "%s: option '%s' cannot take an argument", - my_progname, optp->name); - return EXIT_NO_ARGUMENT_ALLOWED; - } error= 0; value= optp->var_type & GET_ASK_ADDR ? (*getopt_get_addr)(key_name, (uint) strlen(key_name), optp, &error) : @@ -377,6 +369,11 @@ int handle_options(int *argc, char ***ar if (optp->arg_type == NO_ARG) { + /* + Due to historical reasons GET_BOOL var_types still accepts arguments + despite the NO_ARG arg_type attribute. This can seems a bit unintuitive + and care should be taken when refactoring this code. + */ if (optend && (optp->var_type & GET_TYPE_MASK) != GET_BOOL) { if (my_getopt_print_errors) @@ -391,7 +388,7 @@ int handle_options(int *argc, char ***ar 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 - */ + */ (*argc)--; if (!optend || *optend == '1' || !my_strcasecmp(&my_charset_latin1, optend, "true")) @@ -418,10 +415,9 @@ int handle_options(int *argc, char ***ar else if (optp->arg_type == REQUIRED_ARG && !optend) { /* Check if there are more arguments after this one, - - Note: options loaded from config file that requires value - should always be in the form '--option=value'. - */ + Note: options loaded from config file that requires value + should always be in the form '--option=value'. + */ if (!is_cmdline_arg || !*++pos) { if (my_getopt_print_errors) No bundle (reason: useless for push emails).