From: Mats Kindahl Date: September 8 2010 8:11pm Subject: Re: [STYLE] use true/false in C++, not TRUE/FALSE List-Archive: http://lists.mysql.com/internals/38078 Message-Id: <4C87EDED.2000700@oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030103010409050009010800" --------------030103010409050009010800 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 09/08/2010 02:47 PM, Tor Didriksen wrote: > On 2010-09-08 14:22, Mats Kindahl wrote: >>>> One way to avoid the problems that Mark points out is to redefine >>>> >> my_bool to be "int". This would work for all places where >>>> my_bool is >>>> >> used and IIRC, there are no places in ABIs where my_bool is >>>> used. If >>>> >> there are, it is easy to replace them with "unsigned char" to >>>> ensure >>>> >> that the ABI does not change. >>>> >> >>> > naah, I think we want sizeof(my_bool) == 1 >>> >> Why? >> >> /Matz >> >> > - save space Hardly relevant in this case. * If my_bool is used inside a structure, alignment on modern architectures will force it to align on a 4-byte boundary anyway * If several my_bool are used in a sequence, memory could be saved, but if space is so important, it is better to use a bit field * As return value they will not save space, and even generate larger code. Not much, but it defuses the argument of saving space. * As auto variables, they are likely to align at 4-byte boundaries anyway, if they end up on the stack, and be stored in a register if not. > - compatibility with bool in C++ (and C99) I cannot see at all why there is any advantage in allowing sizeof(my_bool) == sizeof(bool). The type bool is used in C++ and my_bool is used in C: there will not be a connection between them that make any difference whatsoever. > > I encourage you to try 'typedef int my_bool;' > my guess is you will get quite a few errors to fix, both compile time > and run-time Out of curiosity, I did. * I found some violations of the ABI in that InnoDB uses "char" in place of "my_bool", and same for the semi-sync plugin. * I had to rewrite the Sys_var_mybool to Sys_var_bool instead (it's C++ code and was using "my_bool" inside the class but "bool" for the underlying variables, which cause the casting problems that Mark was talking about). That's all. I didn't run all tests, just the "main" test suite. Patch attached for the curios. There is one change to the ABI, but that is only because I just wanted the compile to pass. The ABI can be maintained, but right now it's too late for me to bother about fixing that for the demo patch. Just my few cents, Mats Kindahl > > -- didrik > > --------------030103010409050009010800 Content-Type: text/x-diff; name="patch-1.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="patch-1.diff" === modified file 'include/my_global.h' --- include/my_global.h 2010-07-23 20:59:42 +0000 +++ include/my_global.h 2010-09-08 13:09:05 +0000 @@ -985,7 +985,7 @@ #endif typedef int myf; /* Type of MyFlags in my_funcs */ -typedef char my_bool; /* Small bool */ +typedef int my_bool; /* Small bool */ /* Macros for converting *constants* to the right type */ #define MYF(v) (myf) (v) === modified file 'include/mysql/plugin.h' --- include/mysql/plugin.h 2010-09-01 13:05:01 +0000 +++ include/mysql/plugin.h 2010-09-08 18:46:44 +0000 @@ -287,7 +287,7 @@ */ #define MYSQL_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \ -DECLARE_MYSQL_SYSVAR_BASIC(name, char) = { \ +DECLARE_MYSQL_SYSVAR_BASIC(name, my_bool) = { \ PLUGIN_VAR_BOOL | ((opt) & PLUGIN_VAR_MASK), \ #name, comment, check, update, &varname, def} === modified file 'plugin/semisync/semisync_master.cc' --- plugin/semisync/semisync_master.cc 2010-06-02 12:57:39 +0000 +++ plugin/semisync/semisync_master.cc 2010-09-08 18:53:44 +0000 @@ -22,7 +22,7 @@ #define TIME_BILLION 1000000000 /* This indicates whether semi-synchronous replication is enabled. */ -char rpl_semi_sync_master_enabled; +my_bool rpl_semi_sync_master_enabled; unsigned long rpl_semi_sync_master_timeout; unsigned long rpl_semi_sync_master_trace_level; char rpl_semi_sync_master_status = 0; @@ -40,7 +40,7 @@ unsigned long rpl_semi_sync_master_clients = 0; unsigned long long rpl_semi_sync_master_net_wait_time = 0; unsigned long long rpl_semi_sync_master_trx_wait_time = 0; -char rpl_semi_sync_master_wait_no_slave = 1; +my_bool rpl_semi_sync_master_wait_no_slave = 1; static int getWaitTime(const struct timespec& start_ts); === modified file 'plugin/semisync/semisync_master.h' --- plugin/semisync/semisync_master.h 2010-07-08 21:20:08 +0000 +++ plugin/semisync/semisync_master.h 2010-09-08 18:53:35 +0000 @@ -591,7 +591,7 @@ }; /* System and status variables for the master component */ -extern char rpl_semi_sync_master_enabled; +extern my_bool rpl_semi_sync_master_enabled; extern char rpl_semi_sync_master_status; extern unsigned long rpl_semi_sync_master_clients; extern unsigned long rpl_semi_sync_master_timeout; @@ -617,6 +617,6 @@ 0 : stop waiting if detected no avaialable semi-sync slave. 1 (default) : keep waiting until timeout even no available semi-sync slave. */ -extern char rpl_semi_sync_master_wait_no_slave; +extern my_bool rpl_semi_sync_master_wait_no_slave; #endif /* SEMISYNC_MASTER_H */ === modified file 'plugin/semisync/semisync_slave.cc' --- plugin/semisync/semisync_slave.cc 2009-10-12 13:21:13 +0000 +++ plugin/semisync/semisync_slave.cc 2010-09-08 18:51:45 +0000 @@ -16,8 +16,8 @@ #include "semisync_slave.h" -char rpl_semi_sync_slave_enabled; -char rpl_semi_sync_slave_status= 0; +my_bool rpl_semi_sync_slave_enabled; +my_bool rpl_semi_sync_slave_status= 0; unsigned long rpl_semi_sync_slave_trace_level; int ReplSemiSyncSlave::initObject() === modified file 'plugin/semisync/semisync_slave.h' --- plugin/semisync/semisync_slave.h 2009-10-12 13:21:13 +0000 +++ plugin/semisync/semisync_slave.h 2010-09-08 18:52:00 +0000 @@ -89,8 +89,8 @@ /* System and status variables for the slave component */ -extern char rpl_semi_sync_slave_enabled; +extern my_bool rpl_semi_sync_slave_enabled; extern unsigned long rpl_semi_sync_slave_trace_level; -extern char rpl_semi_sync_slave_status; +extern my_bool rpl_semi_sync_slave_status; #endif /* SEMISYNC_SLAVE_H */ === modified file 'sql/sql_plugin.cc' --- sql/sql_plugin.cc 2010-08-23 17:02:22 +0000 +++ sql/sql_plugin.cc 2010-09-08 19:33:33 +0000 @@ -3103,7 +3103,7 @@ continue; switch (opt->flags & PLUGIN_VAR_TYPEMASK) { case PLUGIN_VAR_BOOL: - ((thdvar_bool_t *) opt)->resolve= mysql_sys_var_char; + ((thdvar_bool_t *) opt)->resolve= mysql_sys_var_int; break; case PLUGIN_VAR_INT: ((thdvar_int_t *) opt)->resolve= mysql_sys_var_int; === modified file 'sql/sys_vars.cc' --- sql/sys_vars.cc 2010-09-01 13:05:01 +0000 +++ sql/sys_vars.cc 2010-09-08 20:00:40 +0000 @@ -70,7 +70,7 @@ NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(NULL), ON_UPDATE(NULL), \ 0, NULL, sys_var::PARSE_EARLY -static Sys_var_mybool Sys_pfs_enabled( +static Sys_var_bool Sys_pfs_enabled( "performance_schema", "Enable the performance schema.", READ_ONLY GLOBAL_VAR(pfs_param.m_enabled), @@ -216,7 +216,7 @@ VALID_RANGE(1, 65535), DEFAULT(1), BLOCK_SIZE(1), NO_MUTEX_GUARD, IN_BINLOG); -static Sys_var_mybool Sys_automatic_sp_privileges( +static Sys_var_bool Sys_automatic_sp_privileges( "automatic_sp_privileges", "Creating and dropping stored procedures alters ACLs", GLOBAL_VAR(sp_automatic_privileges), @@ -357,7 +357,7 @@ return false; } -static Sys_var_mybool Sys_binlog_direct( +static Sys_var_bool Sys_binlog_direct( "binlog_direct_non_transactional_updates", "Causes updates to non-transactional engines using statement format to " "be written directly to binary log. Before using this option make sure " @@ -707,7 +707,7 @@ GLOBAL_VAR(expire_logs_days), CMD_LINE(REQUIRED_ARG), VALID_RANGE(0, 99), DEFAULT(0), BLOCK_SIZE(1)); -static Sys_var_mybool Sys_flush( +static Sys_var_bool Sys_flush( "flush", "Flush MyISAM tables to disk between SQL commands", GLOBAL_VAR(myisam_flush), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); @@ -770,7 +770,7 @@ READ_ONLY GLOBAL_VAR(ft_stopword_file), CMD_LINE(REQUIRED_ARG), IN_FS_CHARSET, DEFAULT(0)); -static Sys_var_mybool Sys_ignore_builtin_innodb( +static Sys_var_bool Sys_ignore_builtin_innodb( "ignore_builtin_innodb", "Disable initialization of builtin InnoDB plugin", READ_ONLY GLOBAL_VAR(opt_ignore_builtin_innodb), @@ -865,7 +865,7 @@ BLOCK_SIZE(100), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(update_keycache_param)); -static Sys_var_mybool Sys_large_files_support( +static Sys_var_bool Sys_large_files_support( "large_files_support", "Whether mysqld was compiled with options for large file support", READ_ONLY GLOBAL_VAR(opt_large_files), @@ -877,7 +877,7 @@ READ_ONLY GLOBAL_VAR(opt_large_page_size), NO_CMD_LINE, VALID_RANGE(0, UINT_MAX), DEFAULT(0), BLOCK_SIZE(1)); -static Sys_var_mybool Sys_large_pages( +static Sys_var_bool Sys_large_pages( "large_pages", "Enable support for large pages", READ_ONLY GLOBAL_VAR(opt_large_pages), IF_WIN(NO_CMD_LINE, CMD_LINE(OPT_ARG)), DEFAULT(FALSE)); @@ -887,7 +887,7 @@ READ_ONLY GLOBAL_VAR(lc_messages_dir_ptr), CMD_LINE(REQUIRED_ARG, 'L'), IN_FS_CHARSET, DEFAULT(0)); -static Sys_var_mybool Sys_local_infile( +static Sys_var_bool Sys_local_infile( "local_infile", "Enable LOAD DATA LOCAL INFILE", GLOBAL_VAR(opt_local_infile), CMD_LINE(OPT_ARG), DEFAULT(TRUE)); @@ -898,18 +898,18 @@ VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(LONG_TIMEOUT), BLOCK_SIZE(1)); #ifdef HAVE_MLOCKALL -static Sys_var_mybool Sys_locked_in_memory( +static Sys_var_bool Sys_locked_in_memory( "locked_in_memory", "Whether mysqld was locked in memory with --memlock", READ_ONLY GLOBAL_VAR(locked_in_memory), NO_CMD_LINE, DEFAULT(FALSE)); #endif /* this says NO_CMD_LINE, as command-line option takes a string, not a bool */ -static Sys_var_mybool Sys_log_bin( +static Sys_var_bool Sys_log_bin( "log_bin", "Whether the binary log is enabled", READ_ONLY GLOBAL_VAR(opt_bin_log), NO_CMD_LINE, DEFAULT(FALSE)); -static Sys_var_mybool Sys_trust_function_creators( +static Sys_var_bool Sys_trust_function_creators( "log_bin_trust_function_creators", "If set to FALSE (the default), then when --log-bin is used, creation " "of a stored function (or trigger) is allowed only to users having the " @@ -927,7 +927,7 @@ CMD_LINE(OPT_ARG, OPT_LOG_ERROR), IN_FS_CHARSET, DEFAULT(disabled_my_option)); -static Sys_var_mybool Sys_log_queries_not_using_indexes( +static Sys_var_bool Sys_log_queries_not_using_indexes( "log_queries_not_using_indexes", "Log queries that are executed without benefit of any index to the " "slow log if it is open", @@ -974,7 +974,7 @@ TL_WRITE_LOW_PRIORITY : TL_WRITE); return false; } -static Sys_var_mybool Sys_low_priority_updates( +static Sys_var_bool Sys_low_priority_updates( "low_priority_updates", "INSERT/DELETE/UPDATE has lower priority than selects", SESSION_VAR(low_priority_updates), @@ -983,7 +983,7 @@ ON_UPDATE(fix_low_prio_updates)); #ifndef TO_BE_DELETED /* Alias for the low_priority_updates */ -static Sys_var_mybool Sys_sql_low_priority_updates( +static Sys_var_bool Sys_sql_low_priority_updates( "sql_low_priority_updates", "INSERT/DELETE/UPDATE has lower priority than selects", SESSION_VAR(low_priority_updates), NO_CMD_LINE, @@ -991,7 +991,7 @@ ON_UPDATE(fix_low_prio_updates)); #endif -static Sys_var_mybool Sys_lower_case_file_system( +static Sys_var_bool Sys_lower_case_file_system( "lower_case_file_system", "Case sensitivity of file names on the file system where the " "data directory is located", @@ -1235,7 +1235,7 @@ VALID_RANGE(0, ULONG_MAX), DEFAULT(0), BLOCK_SIZE(1)); #ifdef _WIN32 -static Sys_var_mybool Sys_named_pipe( +static Sys_var_bool Sys_named_pipe( "named_pipe", "Enable the named pipe (NT)", READ_ONLY GLOBAL_VAR(opt_enable_named_pipe), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); @@ -1293,15 +1293,15 @@ BLOCK_SIZE(1), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(fix_net_retry_count)); -static Sys_var_mybool Sys_new_mode( +static Sys_var_bool Sys_new_mode( "new", "Use very new possible \"unsafe\" functions", SESSION_VAR(new_mode), CMD_LINE(OPT_ARG, 'n'), DEFAULT(FALSE)); -static Sys_var_mybool Sys_old_mode( +static Sys_var_bool Sys_old_mode( "old", "Use compatible behavior", READ_ONLY GLOBAL_VAR(old_mode), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); -static Sys_var_mybool Sys_old_alter_table( +static Sys_var_bool Sys_old_alter_table( "old_alter_table", "Use old, non-optimized alter table", SESSION_VAR(old_alter_table), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); @@ -1309,7 +1309,7 @@ { return mysql_user_table_is_in_short_password_format; } -static Sys_var_mybool Sys_old_passwords( +static Sys_var_bool Sys_old_passwords( "old_passwords", "Use old password encryption method (needed for 4.0 and older clients)", SESSION_VAR(old_passwords), CMD_LINE(OPT_ARG), DEFAULT(FALSE), @@ -1497,7 +1497,7 @@ read_only= opt_readonly; DBUG_RETURN(result); } -static Sys_var_mybool Sys_readonly( +static Sys_var_bool Sys_readonly( "read_only", "Make all non-temporary tables read-only, with the exception for " "replication (slave) threads and users with the SUPER privilege", @@ -1557,7 +1557,7 @@ ON_UPDATE(fix_thd_mem_root)); #ifdef HAVE_SMEM -static Sys_var_mybool Sys_shared_memory( +static Sys_var_bool Sys_shared_memory( "shared_memory", "Enable the shared memory", READ_ONLY GLOBAL_VAR(opt_enable_shared_memory), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); @@ -1569,23 +1569,23 @@ #endif // this has to be NO_CMD_LINE as the command-line option has a different name -static Sys_var_mybool Sys_skip_external_locking( +static Sys_var_bool Sys_skip_external_locking( "skip_external_locking", "Don't use system (external) locking", READ_ONLY GLOBAL_VAR(my_disable_locking), NO_CMD_LINE, DEFAULT(TRUE)); -static Sys_var_mybool Sys_skip_networking( +static Sys_var_bool Sys_skip_networking( "skip_networking", "Don't allow connection with TCP/IP", READ_ONLY GLOBAL_VAR(opt_disable_networking), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); -static Sys_var_mybool Sys_skip_name_resolve( +static Sys_var_bool Sys_skip_name_resolve( "skip_name_resolve", "Don't resolve hostnames. All hostnames are IP's or 'localhost'.", READ_ONLY GLOBAL_VAR(opt_skip_name_resolve), CMD_LINE(OPT_ARG, OPT_SKIP_RESOLVE), DEFAULT(FALSE)); -static Sys_var_mybool Sys_skip_show_database( +static Sys_var_bool Sys_skip_show_database( "skip_show_database", "Don't allow 'SHOW DATABASE' commands", READ_ONLY GLOBAL_VAR(opt_skip_show_db), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); @@ -1724,14 +1724,14 @@ query_cache_type_names, DEFAULT(1), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_query_cache_type)); -static Sys_var_mybool Sys_query_cache_wlock_invalidate( +static Sys_var_bool Sys_query_cache_wlock_invalidate( "query_cache_wlock_invalidate", "Invalidate queries in query cache on LOCK for write", SESSION_VAR(query_cache_wlock_invalidate), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); #endif /* HAVE_QUERY_CACHE */ -static Sys_var_mybool Sys_secure_auth( +static Sys_var_bool Sys_secure_auth( "secure_auth", "Disallow authentication for accounts that have old (pre-4.1) " "passwords", @@ -1765,7 +1765,7 @@ READ_ONLY GLOBAL_VAR(server_uuid_ptr), NO_CMD_LINE, IN_FS_CHARSET, DEFAULT(server_uuid)); -static Sys_var_mybool Sys_slave_compressed_protocol( +static Sys_var_bool Sys_slave_compressed_protocol( "slave_compressed_protocol", "Use compression on master/slave protocol", GLOBAL_VAR(opt_slave_compressed_protocol), CMD_LINE(OPT_ARG), @@ -1960,7 +1960,7 @@ SESSION_VAR(updatable_views_with_limit), CMD_LINE(REQUIRED_ARG), updatable_views_with_limit_names, DEFAULT(TRUE)); -static Sys_var_mybool Sys_sync_frm( +static Sys_var_bool Sys_sync_frm( "sync_frm", "Sync .frm files to disk on creation", GLOBAL_VAR(opt_sync_frm), CMD_LINE(OPT_ARG), DEFAULT(TRUE)); @@ -2056,7 +2056,7 @@ VALID_RANGE(1024, (ulonglong)~(intptr)0), DEFAULT(16*1024*1024), BLOCK_SIZE(1)); -static Sys_var_mybool Sys_timed_mutexes( +static Sys_var_bool Sys_timed_mutexes( "timed_mutexes", "Specify whether to time mutexes (only InnoDB mutexes are currently " "supported)", @@ -2105,7 +2105,7 @@ sv->optimizer_switch&= ~OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN; return false; } -static Sys_var_mybool Sys_engine_condition_pushdown( +static Sys_var_bool Sys_engine_condition_pushdown( "engine_condition_pushdown", "Push supported query conditions to the storage engine." " Deprecated, use --optimizer-switch instead.", @@ -2229,13 +2229,13 @@ NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(fix_autocommit)); export sys_var *Sys_autocommit_ptr= &Sys_autocommit; // for sql_yacc.yy -static Sys_var_mybool Sys_big_tables( +static Sys_var_bool Sys_big_tables( "big_tables", "Allow big result sets by saving all " "temporary sets on file (Solves most 'table full' errors)", SESSION_VAR(big_tables), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); #ifndef TO_BE_DELETED /* Alias for big_tables */ -static Sys_var_mybool Sys_sql_big_tables( +static Sys_var_bool Sys_sql_big_tables( "sql_big_tables", "alias for big_tables", SESSION_VAR(big_tables), NO_CMD_LINE, DEFAULT(FALSE)); #endif @@ -2308,7 +2308,7 @@ return FALSE; } -static Sys_var_mybool Sys_log_binlog( +static Sys_var_bool Sys_log_binlog( "sql_log_bin", "sql_log_bin", SESSION_VAR(sql_log_bin), NO_CMD_LINE, DEFAULT(TRUE), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_sql_log_bin), @@ -2605,7 +2605,7 @@ VALID_RANGE(0, UINT_MAX), DEFAULT(MYSQL_PORT), BLOCK_SIZE(1)); #endif -static Sys_var_mybool Sys_keep_files_on_create( +static Sys_var_bool Sys_keep_files_on_create( "keep_files_on_create", "Don't overwrite stale .MYD and .MYI even if no directory is specified", SESSION_VAR(keep_files_on_create), CMD_LINE(OPT_ARG), @@ -2775,7 +2775,7 @@ READ_ONLY GLOBAL_VAR(have_symlink), NO_CMD_LINE); static bool fix_log_state(sys_var *self, THD *thd, enum_var_type type); -static Sys_var_mybool Sys_general_log( +static Sys_var_bool Sys_general_log( "general_log", "Log connections and queries to a table or log file. " "Defaults logging to a file hostname.log or a table mysql.general_log" "if --log-output=TABLE is used", @@ -2784,13 +2784,13 @@ ON_UPDATE(fix_log_state)); // Synonym of "general_log" for consistency with SHOW VARIABLES output -static Sys_var_mybool Sys_log( +static Sys_var_bool Sys_log( "log", "Alias for --general-log. Deprecated", GLOBAL_VAR(opt_log), NO_CMD_LINE, DEFAULT(FALSE), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(fix_log_state), DEPRECATED(70000, "'@@general_log'")); -static Sys_var_mybool Sys_slow_query_log( +static Sys_var_bool Sys_slow_query_log( "slow_query_log", "Log slow queries to a table or log file. Defaults logging to a file " "hostname-slow.log or a table mysql.slow_log if --log-output=TABLE is " @@ -2800,7 +2800,7 @@ ON_UPDATE(fix_log_state)); /* Synonym of "slow_query_log" for consistency with SHOW VARIABLES output */ -static Sys_var_mybool Sys_log_slow( +static Sys_var_bool Sys_log_slow( "log_slow_queries", "Alias for --slow-query-log. Deprecated", GLOBAL_VAR(opt_slow_log), NO_CMD_LINE, @@ -2869,7 +2869,7 @@ ON_CHECK(check_not_empty_set), ON_UPDATE(fix_log_output)); #ifdef HAVE_REPLICATION -static Sys_var_mybool Sys_log_slave_updates( +static Sys_var_bool Sys_log_slave_updates( "log_slave_updates", "Tells the slave to log the updates from " "the slave thread to the binary log. You will need to turn it on if " "you plan to daisy-chain the slaves", @@ -2893,12 +2893,12 @@ READ_ONLY GLOBAL_VAR(relay_log_info_file), CMD_LINE(REQUIRED_ARG), IN_FS_CHARSET, DEFAULT(0)); -static Sys_var_mybool Sys_relay_log_purge( +static Sys_var_bool Sys_relay_log_purge( "relay_log_purge", "if disabled - do not purge relay logs. " "if enabled - purge them as soon as they are no more needed", GLOBAL_VAR(relay_log_purge), CMD_LINE(OPT_ARG), DEFAULT(TRUE)); -static Sys_var_mybool Sys_relay_log_recovery( +static Sys_var_bool Sys_relay_log_recovery( "relay_log_recovery", "Enables automatic relay log recovery " "right after the database startup, which means that the IO Thread " "starts re-fetching from the master right after the last transaction " === modified file 'sql/sys_vars.h' --- sql/sys_vars.h 2010-08-12 14:08:21 +0000 +++ sql/sys_vars.h 2010-09-08 19:59:25 +0000 @@ -299,43 +299,43 @@ The class for boolean variables - a variant of ENUM variables with the fixed list of values of { OFF , ON } - Backing store: my_bool + Backing store: bool */ -class Sys_var_mybool: public Sys_var_typelib +class Sys_var_bool: public Sys_var_typelib { public: - Sys_var_mybool(const char *name_arg, + Sys_var_bool(const char *name_arg, const char *comment, int flag_args, ptrdiff_t off, size_t size, CMD_LINE getopt, - my_bool def_val, PolyLock *lock=0, + bool def_val, PolyLock *lock=0, enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, on_check_function on_check_func=0, on_update_function on_update_func=0, uint deprecated_version=0, const char *substitute=0, int parse_flag= PARSE_NORMAL) : Sys_var_typelib(name_arg, comment, flag_args, off, getopt, - SHOW_MY_BOOL, bool_values, def_val, lock, + SHOW_BOOL, bool_values, def_val, lock, binlog_status_arg, on_check_func, on_update_func, deprecated_version, substitute, parse_flag) { option.var_type= GET_BOOL; - global_var(my_bool)= def_val; + global_var(bool)= def_val; DBUG_ASSERT(def_val < 2); DBUG_ASSERT(getopt.arg_type == OPT_ARG || getopt.id == -1); - DBUG_ASSERT(size == sizeof(my_bool)); + DBUG_ASSERT(size == sizeof(bool)); } bool session_update(THD *thd, set_var *var) { - session_var(thd, my_bool)= var->save_result.ulonglong_value; + session_var(thd, bool)= var->save_result.ulonglong_value; return false; } bool global_update(THD *thd, set_var *var) { - global_var(my_bool)= var->save_result.ulonglong_value; + global_var(bool)= var->save_result.ulonglong_value; return false; } void session_save_default(THD *thd, set_var *var) - { var->save_result.ulonglong_value= (ulonglong)*(my_bool *)global_value_ptr(thd, 0); } + { var->save_result.ulonglong_value= (ulonglong)*(bool *)global_value_ptr(thd, 0); } void global_save_default(THD *thd, set_var *var) { var->save_result.ulonglong_value= option.def_value; } }; === modified file 'storage/innobase/btr/btr0sea.c' --- storage/innobase/btr/btr0sea.c 2010-08-18 07:49:26 +0000 +++ storage/innobase/btr/btr0sea.c 2010-09-08 19:07:50 +0000 @@ -45,7 +45,7 @@ /** Flag: has the search system been enabled? Protected by btr_search_latch and btr_search_enabled_mutex. */ -UNIV_INTERN char btr_search_enabled = TRUE; +UNIV_INTERN my_bool btr_search_enabled = TRUE; UNIV_INTERN ibool btr_search_fully_disabled = FALSE; /** Mutex protecting btr_search_enabled */ === modified file 'storage/innobase/include/btr0sea.h' --- storage/innobase/include/btr0sea.h 2010-08-18 07:49:26 +0000 +++ storage/innobase/include/btr0sea.h 2010-09-08 19:08:57 +0000 @@ -194,7 +194,7 @@ /** Flag: has the search system been enabled? Protected by btr_search_latch and btr_search_enabled_mutex. */ -extern char btr_search_enabled; +extern my_bool btr_search_enabled; /** Flag: whether the search system has completed its disabling process, It is set to TRUE right after buf_pool_drop_hash_index() in === modified file 'storage/innobase/include/srv0srv.h' --- storage/innobase/include/srv0srv.h 2010-07-29 17:59:17 +0000 +++ storage/innobase/include/srv0srv.h 2010-09-08 19:09:13 +0000 @@ -133,7 +133,7 @@ extern ulint srv_log_file_size; extern ulint srv_log_buffer_size; extern ulong srv_flush_log_at_trx_commit; -extern char srv_adaptive_flushing; +extern my_bool srv_adaptive_flushing; /* The sort order table of the MySQL latin1_swedish_ci character set === modified file 'storage/innobase/srv/srv0srv.c' --- storage/innobase/srv/srv0srv.c 2010-09-01 13:05:01 +0000 +++ storage/innobase/srv/srv0srv.c 2010-09-08 19:07:39 +0000 @@ -192,7 +192,7 @@ /* Try to flush dirty pages so as to avoid IO bursts at the checkpoints. */ -UNIV_INTERN char srv_adaptive_flushing = TRUE; +UNIV_INTERN my_bool srv_adaptive_flushing = TRUE; /** Maximum number of times allowed to conditionally acquire mutex before switching to blocking wait on the mutex */ --------------030103010409050009010800--