Commit bd6afd8b authored by Alexander Barkov's avatar Alexander Barkov

MDEV-21956 Add class Sys_var_charptr_fscs

Simplifying definitions on Sys_var_charptr*:

- Removing sys_var::is_os_charset
- Adding a new class Sys_var_charptr_fscs, to handle system
  variables with character_set_filesystem.
parent 9cc7edb1
...@@ -154,8 +154,7 @@ sys_var::sys_var(sys_var_chain *chain, const char *name_arg, ...@@ -154,8 +154,7 @@ sys_var::sys_var(sys_var_chain *chain, const char *name_arg,
next(0), binlog_status(binlog_status_arg), value_origin(COMPILE_TIME), next(0), binlog_status(binlog_status_arg), value_origin(COMPILE_TIME),
flags(flags_arg), show_val_type(show_val_type_arg), flags(flags_arg), show_val_type(show_val_type_arg),
guard(lock), offset(off), on_check(on_check_func), on_update(on_update_func), guard(lock), offset(off), on_check(on_check_func), on_update(on_update_func),
deprecation_substitute(substitute), deprecation_substitute(substitute)
is_os_charset(FALSE)
{ {
/* /*
There is a limitation in handle_options() related to short options: There is a limitation in handle_options() related to short options:
...@@ -509,12 +508,6 @@ bool throw_bounds_warning(THD *thd, const char *name, bool fixed, double v) ...@@ -509,12 +508,6 @@ bool throw_bounds_warning(THD *thd, const char *name, bool fixed, double v)
return false; return false;
} }
CHARSET_INFO *sys_var::charset(THD *thd)
{
return is_os_charset ? thd->variables.character_set_filesystem :
system_charset_info;
}
typedef struct old_names_map_st typedef struct old_names_map_st
{ {
......
...@@ -90,7 +90,6 @@ class sys_var: protected Value_source // for double_from_string_with_check ...@@ -90,7 +90,6 @@ class sys_var: protected Value_source // for double_from_string_with_check
on_check_function on_check; on_check_function on_check;
on_update_function on_update; on_update_function on_update;
const char *const deprecation_substitute; const char *const deprecation_substitute;
bool is_os_charset; ///< true if the value is in character_set_filesystem
public: public:
sys_var(sys_var_chain *chain, const char *name_arg, const char *comment, sys_var(sys_var_chain *chain, const char *name_arg, const char *comment,
...@@ -130,7 +129,10 @@ class sys_var: protected Value_source // for double_from_string_with_check ...@@ -130,7 +129,10 @@ class sys_var: protected Value_source // for double_from_string_with_check
SHOW_TYPE show_type() { return show_val_type; } SHOW_TYPE show_type() { return show_val_type; }
int scope() const { return flags & SCOPE_MASK; } int scope() const { return flags & SCOPE_MASK; }
CHARSET_INFO *charset(THD *thd); virtual CHARSET_INFO *charset(THD *thd) const
{
return system_charset_info;
}
bool is_readonly() const { return flags & READONLY; } bool is_readonly() const { return flags & READONLY; }
/** /**
the following is only true for keycache variables, the following is only true for keycache variables,
......
...@@ -501,16 +501,16 @@ static Sys_var_ulong Sys_back_log( ...@@ -501,16 +501,16 @@ static Sys_var_ulong Sys_back_log(
AUTO_SET READ_ONLY GLOBAL_VAR(back_log), CMD_LINE(REQUIRED_ARG), AUTO_SET READ_ONLY GLOBAL_VAR(back_log), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, 65535), DEFAULT(150), BLOCK_SIZE(1)); VALID_RANGE(0, 65535), DEFAULT(150), BLOCK_SIZE(1));
static Sys_var_charptr Sys_basedir( static Sys_var_charptr_fscs Sys_basedir(
"basedir", "Path to installation directory. All paths are " "basedir", "Path to installation directory. All paths are "
"usually resolved relative to this", "usually resolved relative to this",
READ_ONLY GLOBAL_VAR(mysql_home_ptr), CMD_LINE(REQUIRED_ARG, 'b'), READ_ONLY GLOBAL_VAR(mysql_home_ptr), CMD_LINE(REQUIRED_ARG, 'b'),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_my_bind_addr( static Sys_var_charptr_fscs Sys_my_bind_addr(
"bind_address", "IP address to bind to.", "bind_address", "IP address to bind to.",
READ_ONLY GLOBAL_VAR(my_bind_addr_str), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(my_bind_addr_str), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
const char *Sys_var_vers_asof::asof_keywords[]= {"DEFAULT", NULL}; const char *Sys_var_vers_asof::asof_keywords[]= {"DEFAULT", NULL};
static Sys_var_vers_asof Sys_vers_asof_timestamp( static Sys_var_vers_asof Sys_vers_asof_timestamp(
...@@ -730,10 +730,10 @@ static Sys_var_ulonglong Sys_bulk_insert_buff_size( ...@@ -730,10 +730,10 @@ static Sys_var_ulonglong Sys_bulk_insert_buff_size(
SESSION_VAR(bulk_insert_buff_size), CMD_LINE(REQUIRED_ARG), SESSION_VAR(bulk_insert_buff_size), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, SIZE_T_MAX), DEFAULT(8192*1024), BLOCK_SIZE(1)); VALID_RANGE(0, SIZE_T_MAX), DEFAULT(8192*1024), BLOCK_SIZE(1));
static Sys_var_charptr Sys_character_sets_dir( static Sys_var_charptr_fscs Sys_character_sets_dir(
"character_sets_dir", "Directory where character sets are", "character_sets_dir", "Directory where character sets are",
READ_ONLY GLOBAL_VAR(charsets_dir), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(charsets_dir), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static bool check_not_null(sys_var *self, THD *thd, set_var *var) static bool check_not_null(sys_var *self, THD *thd, set_var *var)
{ {
...@@ -986,10 +986,10 @@ static Sys_var_ulong Sys_connect_timeout( ...@@ -986,10 +986,10 @@ static Sys_var_ulong Sys_connect_timeout(
GLOBAL_VAR(connect_timeout), CMD_LINE(REQUIRED_ARG), GLOBAL_VAR(connect_timeout), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(2, LONG_TIMEOUT), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1)); VALID_RANGE(2, LONG_TIMEOUT), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1));
static Sys_var_charptr Sys_datadir( static Sys_var_charptr_fscs Sys_datadir(
"datadir", "Path to the database root directory", "datadir", "Path to the database root directory",
READ_ONLY GLOBAL_VAR(mysql_real_data_home_ptr), READ_ONLY GLOBAL_VAR(mysql_real_data_home_ptr),
CMD_LINE(REQUIRED_ARG, 'h'), IN_FS_CHARSET, DEFAULT(mysql_real_data_home)); CMD_LINE(REQUIRED_ARG, 'h'), DEFAULT(mysql_real_data_home));
#ifndef DBUG_OFF #ifndef DBUG_OFF
static Sys_var_dbug Sys_dbug( static Sys_var_dbug Sys_dbug(
...@@ -1185,7 +1185,7 @@ static Sys_var_charptr Sys_ft_boolean_syntax( ...@@ -1185,7 +1185,7 @@ static Sys_var_charptr Sys_ft_boolean_syntax(
"ft_boolean_syntax", "List of operators for " "ft_boolean_syntax", "List of operators for "
"MATCH ... AGAINST ( ... IN BOOLEAN MODE)", "MATCH ... AGAINST ( ... IN BOOLEAN MODE)",
GLOBAL_VAR(ft_boolean_syntax), GLOBAL_VAR(ft_boolean_syntax),
CMD_LINE(REQUIRED_ARG), IN_SYSTEM_CHARSET, CMD_LINE(REQUIRED_ARG),
DEFAULT(DEFAULT_FTB_SYNTAX), NO_MUTEX_GUARD, DEFAULT(DEFAULT_FTB_SYNTAX), NO_MUTEX_GUARD,
NOT_IN_BINLOG, ON_CHECK(check_ftb_syntax), ON_UPDATE(query_cache_flush)); NOT_IN_BINLOG, ON_CHECK(check_ftb_syntax), ON_UPDATE(query_cache_flush));
...@@ -1212,11 +1212,11 @@ static Sys_var_ulong Sys_ft_query_expansion_limit( ...@@ -1212,11 +1212,11 @@ static Sys_var_ulong Sys_ft_query_expansion_limit(
CMD_LINE(REQUIRED_ARG), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, 1000), DEFAULT(20), BLOCK_SIZE(1)); VALID_RANGE(0, 1000), DEFAULT(20), BLOCK_SIZE(1));
static Sys_var_charptr Sys_ft_stopword_file( static Sys_var_charptr_fscs Sys_ft_stopword_file(
"ft_stopword_file", "ft_stopword_file",
"Use stopwords from this file instead of built-in list", "Use stopwords from this file instead of built-in list",
READ_ONLY GLOBAL_VAR(ft_stopword_file), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(ft_stopword_file), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_mybool Sys_ignore_builtin_innodb( static Sys_var_mybool Sys_ignore_builtin_innodb(
"ignore_builtin_innodb", "ignore_builtin_innodb",
...@@ -1237,7 +1237,7 @@ static PolyLock_rwlock PLock_sys_init_connect(&LOCK_sys_init_connect); ...@@ -1237,7 +1237,7 @@ static PolyLock_rwlock PLock_sys_init_connect(&LOCK_sys_init_connect);
static Sys_var_lexstring Sys_init_connect( static Sys_var_lexstring Sys_init_connect(
"init_connect", "Command(s) that are executed for each " "init_connect", "Command(s) that are executed for each "
"new connection (unless the user has SUPER privilege)", "new connection (unless the user has SUPER privilege)",
GLOBAL_VAR(opt_init_connect), CMD_LINE(REQUIRED_ARG), IN_SYSTEM_CHARSET, GLOBAL_VAR(opt_init_connect), CMD_LINE(REQUIRED_ARG),
DEFAULT(""), &PLock_sys_init_connect, NOT_IN_BINLOG, DEFAULT(""), &PLock_sys_init_connect, NOT_IN_BINLOG,
ON_CHECK(check_init_string)); ON_CHECK(check_init_string));
...@@ -1257,11 +1257,11 @@ static Sys_var_session_lexstring Sys_default_master_connection( ...@@ -1257,11 +1257,11 @@ static Sys_var_session_lexstring Sys_default_master_connection(
"default_master_connection", "default_master_connection",
"Master connection to use for all slave variables and slave commands", "Master connection to use for all slave variables and slave commands",
SESSION_ONLY(default_master_connection), SESSION_ONLY(default_master_connection),
NO_CMD_LINE, IN_SYSTEM_CHARSET, NO_CMD_LINE,
DEFAULT(""), MAX_CONNECTION_NAME, ON_CHECK(check_master_connection)); DEFAULT(""), MAX_CONNECTION_NAME, ON_CHECK(check_master_connection));
#endif #endif
static Sys_var_charptr Sys_init_file( static Sys_var_charptr_fscs Sys_init_file(
"init_file", "Read SQL commands from this file at startup", "init_file", "Read SQL commands from this file at startup",
READ_ONLY GLOBAL_VAR(opt_init_file), READ_ONLY GLOBAL_VAR(opt_init_file),
#ifdef DISABLE_GRANT_OPTIONS #ifdef DISABLE_GRANT_OPTIONS
...@@ -1269,13 +1269,13 @@ static Sys_var_charptr Sys_init_file( ...@@ -1269,13 +1269,13 @@ static Sys_var_charptr Sys_init_file(
#else #else
CMD_LINE(REQUIRED_ARG), CMD_LINE(REQUIRED_ARG),
#endif #endif
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static PolyLock_rwlock PLock_sys_init_slave(&LOCK_sys_init_slave); static PolyLock_rwlock PLock_sys_init_slave(&LOCK_sys_init_slave);
static Sys_var_lexstring Sys_init_slave( static Sys_var_lexstring Sys_init_slave(
"init_slave", "Command(s) that are executed by a slave server " "init_slave", "Command(s) that are executed by a slave server "
"each time the SQL thread starts", GLOBAL_VAR(opt_init_slave), "each time the SQL thread starts", GLOBAL_VAR(opt_init_slave),
CMD_LINE(REQUIRED_ARG), IN_SYSTEM_CHARSET, CMD_LINE(REQUIRED_ARG),
DEFAULT(""), &PLock_sys_init_slave, DEFAULT(""), &PLock_sys_init_slave,
NOT_IN_BINLOG, ON_CHECK(check_init_string)); NOT_IN_BINLOG, ON_CHECK(check_init_string));
...@@ -1361,10 +1361,10 @@ static Sys_var_mybool Sys_large_pages( ...@@ -1361,10 +1361,10 @@ static Sys_var_mybool Sys_large_pages(
READ_ONLY GLOBAL_VAR(opt_large_pages), READ_ONLY GLOBAL_VAR(opt_large_pages),
IF_WIN(NO_CMD_LINE, CMD_LINE(OPT_ARG)), DEFAULT(FALSE)); IF_WIN(NO_CMD_LINE, CMD_LINE(OPT_ARG)), DEFAULT(FALSE));
static Sys_var_charptr Sys_language( static Sys_var_charptr_fscs Sys_language(
"lc_messages_dir", "Directory where error messages are", "lc_messages_dir", "Directory where error messages are",
READ_ONLY GLOBAL_VAR(lc_messages_dir_ptr), CMD_LINE(REQUIRED_ARG, 'L'), READ_ONLY GLOBAL_VAR(lc_messages_dir_ptr), CMD_LINE(REQUIRED_ARG, 'L'),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_mybool Sys_local_infile( static Sys_var_mybool Sys_local_infile(
"local_infile", "Enable LOAD DATA LOCAL INFILE", "local_infile", "Enable LOAD DATA LOCAL INFILE",
...@@ -1412,14 +1412,14 @@ static Sys_var_mybool Sys_trust_function_creators( ...@@ -1412,14 +1412,14 @@ static Sys_var_mybool Sys_trust_function_creators(
GLOBAL_VAR(trust_function_creators), GLOBAL_VAR(trust_function_creators),
CMD_LINE(OPT_ARG), DEFAULT(FALSE)); CMD_LINE(OPT_ARG), DEFAULT(FALSE));
static Sys_var_charptr Sys_log_error( static Sys_var_charptr_fscs Sys_log_error(
"log_error", "log_error",
"Log errors to file (instead of stdout). If file name is not specified " "Log errors to file (instead of stdout). If file name is not specified "
"then 'datadir'/'log-basename'.err or the 'pid-file' path with extension " "then 'datadir'/'log-basename'.err or the 'pid-file' path with extension "
".err is used", ".err is used",
READ_ONLY GLOBAL_VAR(log_error_file_ptr), READ_ONLY GLOBAL_VAR(log_error_file_ptr),
CMD_LINE(OPT_ARG, OPT_LOG_ERROR), CMD_LINE(OPT_ARG, OPT_LOG_ERROR),
IN_FS_CHARSET, DEFAULT(disabled_my_option)); DEFAULT(disabled_my_option));
static Sys_var_bit Sys_log_queries_not_using_indexes( static Sys_var_bit Sys_log_queries_not_using_indexes(
"log_queries_not_using_indexes", "log_queries_not_using_indexes",
...@@ -2691,15 +2691,15 @@ static Sys_var_ulong Sys_optimizer_trace_max_mem_size( ...@@ -2691,15 +2691,15 @@ static Sys_var_ulong Sys_optimizer_trace_max_mem_size(
SESSION_VAR(optimizer_trace_max_mem_size), CMD_LINE(REQUIRED_ARG), SESSION_VAR(optimizer_trace_max_mem_size), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(0, ULONG_MAX), DEFAULT(1024 * 1024), BLOCK_SIZE(1)); VALID_RANGE(0, ULONG_MAX), DEFAULT(1024 * 1024), BLOCK_SIZE(1));
static Sys_var_charptr Sys_pid_file( static Sys_var_charptr_fscs Sys_pid_file(
"pid_file", "Pid file used by safe_mysqld", "pid_file", "Pid file used by safe_mysqld",
READ_ONLY GLOBAL_VAR(pidfile_name_ptr), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(pidfile_name_ptr), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_plugin_dir( static Sys_var_charptr_fscs Sys_plugin_dir(
"plugin_dir", "Directory for plugins", "plugin_dir", "Directory for plugins",
READ_ONLY GLOBAL_VAR(opt_plugin_dir_ptr), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(opt_plugin_dir_ptr), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_uint Sys_port( static Sys_var_uint Sys_port(
"port", "port",
...@@ -2725,12 +2725,10 @@ static Sys_var_uint Sys_protocol_version( ...@@ -2725,12 +2725,10 @@ static Sys_var_uint Sys_protocol_version(
VALID_RANGE(0, ~0U), DEFAULT(PROTOCOL_VERSION), BLOCK_SIZE(1)); VALID_RANGE(0, ~0U), DEFAULT(PROTOCOL_VERSION), BLOCK_SIZE(1));
static Sys_var_proxy_user Sys_proxy_user( static Sys_var_proxy_user Sys_proxy_user(
"proxy_user", "The proxy user account name used when logging in", "proxy_user", "The proxy user account name used when logging in");
IN_SYSTEM_CHARSET);
static Sys_var_external_user Sys_exterenal_user( static Sys_var_external_user Sys_exterenal_user(
"external_user", "The external user account used when logging in", "external_user", "The external user account used when logging in");
IN_SYSTEM_CHARSET);
static Sys_var_ulong Sys_read_buff_size( static Sys_var_ulong Sys_read_buff_size(
"read_buffer_size", "read_buffer_size",
...@@ -2911,10 +2909,10 @@ static Sys_var_mybool Sys_skip_show_database( ...@@ -2911,10 +2909,10 @@ static Sys_var_mybool Sys_skip_show_database(
READ_ONLY GLOBAL_VAR(opt_skip_show_db), CMD_LINE(OPT_ARG), READ_ONLY GLOBAL_VAR(opt_skip_show_db), CMD_LINE(OPT_ARG),
DEFAULT(FALSE)); DEFAULT(FALSE));
static Sys_var_charptr Sys_socket( static Sys_var_charptr_fscs Sys_socket(
"socket", "Socket file to use for connection", "socket", "Socket file to use for connection",
READ_ONLY GLOBAL_VAR(mysqld_unix_port), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(mysqld_unix_port), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_ulonglong Sys_thread_stack( static Sys_var_ulonglong Sys_thread_stack(
"thread_stack", "The stack size for each thread", "thread_stack", "The stack size for each thread",
...@@ -2922,7 +2920,7 @@ static Sys_var_ulonglong Sys_thread_stack( ...@@ -2922,7 +2920,7 @@ static Sys_var_ulonglong Sys_thread_stack(
VALID_RANGE(128*1024, ULONGLONG_MAX), DEFAULT(DEFAULT_THREAD_STACK), VALID_RANGE(128*1024, ULONGLONG_MAX), DEFAULT(DEFAULT_THREAD_STACK),
BLOCK_SIZE(1024)); BLOCK_SIZE(1024));
static Sys_var_charptr Sys_tmpdir( static Sys_var_charptr_fscs Sys_tmpdir(
"tmpdir", "Path for temporary files. Several paths may " "tmpdir", "Path for temporary files. Several paths may "
"be specified, separated by a " "be specified, separated by a "
#if defined(__WIN__) #if defined(__WIN__)
...@@ -2932,7 +2930,7 @@ static Sys_var_charptr Sys_tmpdir( ...@@ -2932,7 +2930,7 @@ static Sys_var_charptr Sys_tmpdir(
#endif #endif
", in this case they are used in a round-robin fashion", ", in this case they are used in a round-robin fashion",
READ_ONLY GLOBAL_VAR(opt_mysql_tmpdir), CMD_LINE(REQUIRED_ARG, 't'), READ_ONLY GLOBAL_VAR(opt_mysql_tmpdir), CMD_LINE(REQUIRED_ARG, 't'),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static bool fix_trans_mem_root(sys_var *self, THD *thd, enum_var_type type) static bool fix_trans_mem_root(sys_var *self, THD *thd, enum_var_type type)
{ {
...@@ -3135,12 +3133,12 @@ static Sys_var_mybool Sys_require_secure_transport( ...@@ -3135,12 +3133,12 @@ static Sys_var_mybool Sys_require_secure_transport(
NO_MUTEX_GUARD, NOT_IN_BINLOG, NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(check_require_secure_transport), ON_UPDATE(0)); ON_CHECK(check_require_secure_transport), ON_UPDATE(0));
static Sys_var_charptr Sys_secure_file_priv( static Sys_var_charptr_fscs Sys_secure_file_priv(
"secure_file_priv", "secure_file_priv",
"Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files " "Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files "
"within specified directory", "within specified directory",
PREALLOCATED READ_ONLY GLOBAL_VAR(opt_secure_file_priv), PREALLOCATED READ_ONLY GLOBAL_VAR(opt_secure_file_priv),
CMD_LINE(REQUIRED_ARG), IN_FS_CHARSET, DEFAULT(0)); CMD_LINE(REQUIRED_ARG), DEFAULT(0));
static bool fix_server_id(sys_var *self, THD *thd, enum_var_type type) static bool fix_server_id(sys_var *self, THD *thd, enum_var_type type)
{ {
...@@ -3599,44 +3597,44 @@ static Sys_var_set Sys_old_behavior( ...@@ -3599,44 +3597,44 @@ static Sys_var_set Sys_old_behavior(
#define SSL_OPT(X) NO_CMD_LINE #define SSL_OPT(X) NO_CMD_LINE
#endif #endif
static Sys_var_charptr Sys_ssl_ca( static Sys_var_charptr_fscs Sys_ssl_ca(
"ssl_ca", "ssl_ca",
"CA file in PEM format (check OpenSSL docs, implies --ssl)", "CA file in PEM format (check OpenSSL docs, implies --ssl)",
READ_ONLY GLOBAL_VAR(opt_ssl_ca), SSL_OPT(OPT_SSL_CA), READ_ONLY GLOBAL_VAR(opt_ssl_ca), SSL_OPT(OPT_SSL_CA),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_ssl_capath( static Sys_var_charptr_fscs Sys_ssl_capath(
"ssl_capath", "ssl_capath",
"CA directory (check OpenSSL docs, implies --ssl)", "CA directory (check OpenSSL docs, implies --ssl)",
READ_ONLY GLOBAL_VAR(opt_ssl_capath), SSL_OPT(OPT_SSL_CAPATH), READ_ONLY GLOBAL_VAR(opt_ssl_capath), SSL_OPT(OPT_SSL_CAPATH),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_ssl_cert( static Sys_var_charptr_fscs Sys_ssl_cert(
"ssl_cert", "X509 cert in PEM format (implies --ssl)", "ssl_cert", "X509 cert in PEM format (implies --ssl)",
READ_ONLY GLOBAL_VAR(opt_ssl_cert), SSL_OPT(OPT_SSL_CERT), READ_ONLY GLOBAL_VAR(opt_ssl_cert), SSL_OPT(OPT_SSL_CERT),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_ssl_cipher( static Sys_var_charptr_fscs Sys_ssl_cipher(
"ssl_cipher", "SSL cipher to use (implies --ssl)", "ssl_cipher", "SSL cipher to use (implies --ssl)",
READ_ONLY GLOBAL_VAR(opt_ssl_cipher), SSL_OPT(OPT_SSL_CIPHER), READ_ONLY GLOBAL_VAR(opt_ssl_cipher), SSL_OPT(OPT_SSL_CIPHER),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_ssl_key( static Sys_var_charptr_fscs Sys_ssl_key(
"ssl_key", "X509 key in PEM format (implies --ssl)", "ssl_key", "X509 key in PEM format (implies --ssl)",
READ_ONLY GLOBAL_VAR(opt_ssl_key), SSL_OPT(OPT_SSL_KEY), READ_ONLY GLOBAL_VAR(opt_ssl_key), SSL_OPT(OPT_SSL_KEY),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_ssl_crl( static Sys_var_charptr_fscs Sys_ssl_crl(
"ssl_crl", "ssl_crl",
"CRL file in PEM format (check OpenSSL docs, implies --ssl)", "CRL file in PEM format (check OpenSSL docs, implies --ssl)",
READ_ONLY GLOBAL_VAR(opt_ssl_crl), SSL_OPT(OPT_SSL_CRL), READ_ONLY GLOBAL_VAR(opt_ssl_crl), SSL_OPT(OPT_SSL_CRL),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_ssl_crlpath( static Sys_var_charptr_fscs Sys_ssl_crlpath(
"ssl_crlpath", "ssl_crlpath",
"CRL directory (check OpenSSL docs, implies --ssl)", "CRL directory (check OpenSSL docs, implies --ssl)",
READ_ONLY GLOBAL_VAR(opt_ssl_crlpath), SSL_OPT(OPT_SSL_CRLPATH), READ_ONLY GLOBAL_VAR(opt_ssl_crlpath), SSL_OPT(OPT_SSL_CRLPATH),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static const char *tls_version_names[]= static const char *tls_version_names[]=
{ {
...@@ -3690,7 +3688,7 @@ static Sys_var_charptr Sys_system_time_zone( ...@@ -3690,7 +3688,7 @@ static Sys_var_charptr Sys_system_time_zone(
"system_time_zone", "The server system time zone", "system_time_zone", "The server system time zone",
READ_ONLY GLOBAL_VAR(system_time_zone_ptr), READ_ONLY GLOBAL_VAR(system_time_zone_ptr),
CMD_LINE_HELP_ONLY, CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(system_time_zone)); DEFAULT(system_time_zone));
/* /*
If One use views with prepared statements this should be bigger than If One use views with prepared statements this should be bigger than
...@@ -3972,7 +3970,7 @@ static Sys_var_charptr Sys_version( ...@@ -3972,7 +3970,7 @@ static Sys_var_charptr Sys_version(
"enabled, for example 10.1.1-MariaDB-mariadb1precise-log.", "enabled, for example 10.1.1-MariaDB-mariadb1precise-log.",
READ_ONLY GLOBAL_VAR(server_version_ptr), READ_ONLY GLOBAL_VAR(server_version_ptr),
CMD_LINE_HELP_ONLY, CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(server_version)); DEFAULT(server_version));
static char *server_version_comment_ptr; static char *server_version_comment_ptr;
static Sys_var_charptr Sys_version_comment( static Sys_var_charptr Sys_version_comment(
...@@ -3981,14 +3979,14 @@ static Sys_var_charptr Sys_version_comment( ...@@ -3981,14 +3979,14 @@ static Sys_var_charptr Sys_version_comment(
"mariadb.org binary distribution.", "mariadb.org binary distribution.",
READ_ONLY GLOBAL_VAR(server_version_comment_ptr), READ_ONLY GLOBAL_VAR(server_version_comment_ptr),
CMD_LINE_HELP_ONLY, CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(MYSQL_COMPILATION_COMMENT)); DEFAULT(MYSQL_COMPILATION_COMMENT));
static char *server_version_compile_machine_ptr; static char *server_version_compile_machine_ptr;
static Sys_var_charptr Sys_version_compile_machine( static Sys_var_charptr Sys_version_compile_machine(
"version_compile_machine", "The machine type or architecture " "version_compile_machine", "The machine type or architecture "
"MariaDB was built on, for example i686.", "MariaDB was built on, for example i686.",
READ_ONLY GLOBAL_VAR(server_version_compile_machine_ptr), READ_ONLY GLOBAL_VAR(server_version_compile_machine_ptr),
CMD_LINE_HELP_ONLY, IN_SYSTEM_CHARSET, DEFAULT(DEFAULT_MACHINE)); CMD_LINE_HELP_ONLY, DEFAULT(DEFAULT_MACHINE));
static char *server_version_compile_os_ptr; static char *server_version_compile_os_ptr;
static Sys_var_charptr Sys_version_compile_os( static Sys_var_charptr Sys_version_compile_os(
...@@ -3996,7 +3994,7 @@ static Sys_var_charptr Sys_version_compile_os( ...@@ -3996,7 +3994,7 @@ static Sys_var_charptr Sys_version_compile_os(
"on, for example debian-linux-gnu.", "on, for example debian-linux-gnu.",
READ_ONLY GLOBAL_VAR(server_version_compile_os_ptr), READ_ONLY GLOBAL_VAR(server_version_compile_os_ptr),
CMD_LINE_HELP_ONLY, CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(SYSTEM_TYPE)); DEFAULT(SYSTEM_TYPE));
#include <source_revision.h> #include <source_revision.h>
static char *server_version_source_revision; static char *server_version_source_revision;
...@@ -4004,19 +4002,19 @@ static Sys_var_charptr Sys_version_source_revision( ...@@ -4004,19 +4002,19 @@ static Sys_var_charptr Sys_version_source_revision(
"version_source_revision", "Source control revision id for MariaDB source code", "version_source_revision", "Source control revision id for MariaDB source code",
READ_ONLY GLOBAL_VAR(server_version_source_revision), READ_ONLY GLOBAL_VAR(server_version_source_revision),
CMD_LINE_HELP_ONLY, CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(SOURCE_REVISION)); DEFAULT(SOURCE_REVISION));
static char *malloc_library; static char *malloc_library;
static Sys_var_charptr Sys_malloc_library( static Sys_var_charptr Sys_malloc_library(
"version_malloc_library", "Version of the used malloc library", "version_malloc_library", "Version of the used malloc library",
READ_ONLY GLOBAL_VAR(malloc_library), CMD_LINE_HELP_ONLY, READ_ONLY GLOBAL_VAR(malloc_library), CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(guess_malloc_library())); DEFAULT(guess_malloc_library()));
static char *ssl_library; static char *ssl_library;
static Sys_var_charptr Sys_ssl_library( static Sys_var_charptr Sys_ssl_library(
"version_ssl_library", "Version of the used SSL library", "version_ssl_library", "Version of the used SSL library",
READ_ONLY GLOBAL_VAR(ssl_library), CMD_LINE_HELP_ONLY, READ_ONLY GLOBAL_VAR(ssl_library), CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(SSL_LIBRARY)); DEFAULT(SSL_LIBRARY));
static Sys_var_ulong Sys_net_wait_timeout( static Sys_var_ulong Sys_net_wait_timeout(
"wait_timeout", "wait_timeout",
...@@ -4142,7 +4140,7 @@ static Sys_var_debug_sync Sys_debug_sync( ...@@ -4142,7 +4140,7 @@ static Sys_var_debug_sync Sys_debug_sync(
static Sys_var_charptr Sys_date_format( static Sys_var_charptr Sys_date_format(
"date_format", "The DATE format (ignored)", "date_format", "The DATE format (ignored)",
READ_ONLY GLOBAL_VAR(global_date_format.format.str), READ_ONLY GLOBAL_VAR(global_date_format.format.str),
CMD_LINE(REQUIRED_ARG), IN_SYSTEM_CHARSET, CMD_LINE(REQUIRED_ARG),
DEFAULT(known_date_time_formats[ISO_FORMAT].date_format), DEFAULT(known_date_time_formats[ISO_FORMAT].date_format),
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(0),
DEPRECATED("")); // since 10.1.2 DEPRECATED("")); // since 10.1.2
...@@ -4150,7 +4148,7 @@ static Sys_var_charptr Sys_date_format( ...@@ -4150,7 +4148,7 @@ static Sys_var_charptr Sys_date_format(
static Sys_var_charptr Sys_datetime_format( static Sys_var_charptr Sys_datetime_format(
"datetime_format", "The DATETIME format (ignored)", "datetime_format", "The DATETIME format (ignored)",
READ_ONLY GLOBAL_VAR(global_datetime_format.format.str), READ_ONLY GLOBAL_VAR(global_datetime_format.format.str),
CMD_LINE(REQUIRED_ARG), IN_SYSTEM_CHARSET, CMD_LINE(REQUIRED_ARG),
DEFAULT(known_date_time_formats[ISO_FORMAT].datetime_format), DEFAULT(known_date_time_formats[ISO_FORMAT].datetime_format),
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(0),
DEPRECATED("")); // since 10.1.2 DEPRECATED("")); // since 10.1.2
...@@ -4158,7 +4156,7 @@ static Sys_var_charptr Sys_datetime_format( ...@@ -4158,7 +4156,7 @@ static Sys_var_charptr Sys_datetime_format(
static Sys_var_charptr Sys_time_format( static Sys_var_charptr Sys_time_format(
"time_format", "The TIME format (ignored)", "time_format", "The TIME format (ignored)",
READ_ONLY GLOBAL_VAR(global_time_format.format.str), READ_ONLY GLOBAL_VAR(global_time_format.format.str),
CMD_LINE(REQUIRED_ARG), IN_SYSTEM_CHARSET, CMD_LINE(REQUIRED_ARG),
DEFAULT(known_date_time_formats[ISO_FORMAT].time_format), DEFAULT(known_date_time_formats[ISO_FORMAT].time_format),
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(0),
DEPRECATED("")); // since 10.1.2 DEPRECATED("")); // since 10.1.2
...@@ -4640,7 +4638,7 @@ static char *glob_hostname_ptr; ...@@ -4640,7 +4638,7 @@ static char *glob_hostname_ptr;
static Sys_var_charptr Sys_hostname( static Sys_var_charptr Sys_hostname(
"hostname", "Server host name", "hostname", "Server host name",
READ_ONLY GLOBAL_VAR(glob_hostname_ptr), NO_CMD_LINE, READ_ONLY GLOBAL_VAR(glob_hostname_ptr), NO_CMD_LINE,
IN_SYSTEM_CHARSET, DEFAULT(glob_hostname)); DEFAULT(glob_hostname));
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
static Sys_var_charptr Sys_repl_report_host( static Sys_var_charptr Sys_repl_report_host(
...@@ -4653,21 +4651,21 @@ static Sys_var_charptr Sys_repl_report_host( ...@@ -4653,21 +4651,21 @@ static Sys_var_charptr Sys_repl_report_host(
"NAT and other routing issues, that IP may not be valid for connecting " "NAT and other routing issues, that IP may not be valid for connecting "
"to the slave from the master or other hosts", "to the slave from the master or other hosts",
READ_ONLY GLOBAL_VAR(report_host), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(report_host), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_repl_report_user( static Sys_var_charptr Sys_repl_report_user(
"report_user", "report_user",
"The account user name of the slave to be reported to the master " "The account user name of the slave to be reported to the master "
"during slave registration", "during slave registration",
READ_ONLY GLOBAL_VAR(report_user), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(report_user), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_repl_report_password( static Sys_var_charptr Sys_repl_report_password(
"report_password", "report_password",
"The account password of the slave to be reported to the master " "The account password of the slave to be reported to the master "
"during slave registration", "during slave registration",
READ_ONLY GLOBAL_VAR(report_password), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(report_password), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_uint Sys_repl_report_port( static Sys_var_uint Sys_repl_report_port(
"report_port", "report_port",
...@@ -4688,7 +4686,7 @@ static Sys_var_mybool Sys_keep_files_on_create( ...@@ -4688,7 +4686,7 @@ static Sys_var_mybool Sys_keep_files_on_create(
static char *license; static char *license;
static Sys_var_charptr Sys_license( static Sys_var_charptr Sys_license(
"license", "The type of license the server has", "license", "The type of license the server has",
READ_ONLY GLOBAL_VAR(license), NO_CMD_LINE, IN_SYSTEM_CHARSET, READ_ONLY GLOBAL_VAR(license), NO_CMD_LINE,
DEFAULT(STRINGIFY_ARG(LICENSE))); DEFAULT(STRINGIFY_ARG(LICENSE)));
#include <proxy_protocol.h> #include <proxy_protocol.h>
...@@ -4707,7 +4705,7 @@ static bool fix_proxy_protocol_networks(sys_var *, THD *, enum_var_type) ...@@ -4707,7 +4705,7 @@ static bool fix_proxy_protocol_networks(sys_var *, THD *, enum_var_type)
} }
static Sys_var_charptr Sys_proxy_protocol_networks( static Sys_var_charptr_fscs Sys_proxy_protocol_networks(
"proxy_protocol_networks", "Enable proxy protocol for these source " "proxy_protocol_networks", "Enable proxy protocol for these source "
"networks. The syntax is a comma separated list of IPv4 and IPv6 " "networks. The syntax is a comma separated list of IPv4 and IPv6 "
"networks. If the network doesn't contain mask, it is considered to be " "networks. If the network doesn't contain mask, it is considered to be "
...@@ -4715,7 +4713,7 @@ static Sys_var_charptr Sys_proxy_protocol_networks( ...@@ -4715,7 +4713,7 @@ static Sys_var_charptr Sys_proxy_protocol_networks(
"directive on the line. String \"localhost\" represents non-TCP " "directive on the line. String \"localhost\" represents non-TCP "
"local connections (Unix domain socket, Windows named pipe or shared memory).", "local connections (Unix domain socket, Windows named pipe or shared memory).",
GLOBAL_VAR(my_proxy_protocol_networks), CMD_LINE(REQUIRED_ARG), GLOBAL_VAR(my_proxy_protocol_networks), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(""), NO_MUTEX_GUARD, NOT_IN_BINLOG, DEFAULT(""), NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(check_proxy_protocol_networks), ON_UPDATE(fix_proxy_protocol_networks)); ON_CHECK(check_proxy_protocol_networks), ON_UPDATE(fix_proxy_protocol_networks));
...@@ -4812,10 +4810,10 @@ static bool fix_general_log_file(sys_var *self, THD *thd, enum_var_type type) ...@@ -4812,10 +4810,10 @@ static bool fix_general_log_file(sys_var *self, THD *thd, enum_var_type type)
return fix_log(&opt_logname, opt_log_basename, ".log", opt_log, return fix_log(&opt_logname, opt_log_basename, ".log", opt_log,
reopen_general_log); reopen_general_log);
} }
static Sys_var_charptr Sys_general_log_path( static Sys_var_charptr_fscs Sys_general_log_path(
"general_log_file", "Log connections and queries to given file", "general_log_file", "Log connections and queries to given file",
PREALLOCATED GLOBAL_VAR(opt_logname), CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(opt_logname), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(check_log_path), ON_UPDATE(fix_general_log_file)); ON_CHECK(check_log_path), ON_UPDATE(fix_general_log_file));
static void reopen_slow_log(char* name) static void reopen_slow_log(char* name)
...@@ -4828,12 +4826,12 @@ static bool fix_slow_log_file(sys_var *self, THD *thd, enum_var_type type) ...@@ -4828,12 +4826,12 @@ static bool fix_slow_log_file(sys_var *self, THD *thd, enum_var_type type)
return fix_log(&opt_slow_logname, opt_log_basename, "-slow.log", return fix_log(&opt_slow_logname, opt_log_basename, "-slow.log",
global_system_variables.sql_log_slow, reopen_slow_log); global_system_variables.sql_log_slow, reopen_slow_log);
} }
static Sys_var_charptr Sys_slow_log_path( static Sys_var_charptr_fscs Sys_slow_log_path(
"slow_query_log_file", "Log slow queries to given log file. " "slow_query_log_file", "Log slow queries to given log file. "
"Defaults logging to 'hostname'-slow.log. Must be enabled to activate " "Defaults logging to 'hostname'-slow.log. Must be enabled to activate "
"other slow log options", "other slow log options",
PREALLOCATED GLOBAL_VAR(opt_slow_logname), CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(opt_slow_logname), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(check_log_path), ON_UPDATE(fix_slow_log_file)); ON_CHECK(check_log_path), ON_UPDATE(fix_slow_log_file));
static Sys_var_have Sys_have_compress( static Sys_var_have Sys_have_compress(
...@@ -4896,12 +4894,12 @@ static Sys_var_have Sys_have_symlink( ...@@ -4896,12 +4894,12 @@ static Sys_var_have Sys_have_symlink(
#ifdef __SANITIZE_ADDRESS__ #ifdef __SANITIZE_ADDRESS__
static char *have_sanitizer; static char *have_sanitizer;
static Sys_var_charptr Sys_have_santitizer( static Sys_var_charptr_fscs Sys_have_santitizer(
"have_sanitizer", "have_sanitizer",
"If the server is compiled with ASan (Address sanitizer) this will be " "If the server is compiled with ASan (Address sanitizer) this will be "
"set to ASAN", "set to ASAN",
READ_ONLY GLOBAL_VAR(have_sanitizer), NO_CMD_LINE, READ_ONLY GLOBAL_VAR(have_sanitizer), NO_CMD_LINE,
IN_FS_CHARSET, DEFAULT("ASAN")); DEFAULT("ASAN"));
#endif #endif
static bool fix_log_state(sys_var *self, THD *thd, enum_var_type type); static bool fix_log_state(sys_var *self, THD *thd, enum_var_type type);
...@@ -4994,49 +4992,49 @@ static Sys_var_mybool Sys_log_slave_updates( ...@@ -4994,49 +4992,49 @@ static Sys_var_mybool Sys_log_slave_updates(
READ_ONLY GLOBAL_VAR(opt_log_slave_updates), CMD_LINE(OPT_ARG), READ_ONLY GLOBAL_VAR(opt_log_slave_updates), CMD_LINE(OPT_ARG),
DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_relay_log( static Sys_var_charptr_fscs Sys_relay_log(
"relay_log", "The location and name to use for relay logs.", "relay_log", "The location and name to use for relay logs.",
READ_ONLY GLOBAL_VAR(opt_relay_logname), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(opt_relay_logname), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
/* /*
Uses NO_CMD_LINE since the --relay-log-index option set Uses NO_CMD_LINE since the --relay-log-index option set
opt_relaylog_index_name variable and computes a value for the opt_relaylog_index_name variable and computes a value for the
relay_log_index variable. relay_log_index variable.
*/ */
static Sys_var_charptr Sys_relay_log_index( static Sys_var_charptr_fscs Sys_relay_log_index(
"relay_log_index", "The location and name to use for the file " "relay_log_index", "The location and name to use for the file "
"that keeps a list of the last relay logs.", "that keeps a list of the last relay logs.",
READ_ONLY GLOBAL_VAR(relay_log_index), NO_CMD_LINE, READ_ONLY GLOBAL_VAR(relay_log_index), NO_CMD_LINE,
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
/* /*
Uses NO_CMD_LINE since the --log-bin-index option set Uses NO_CMD_LINE since the --log-bin-index option set
opt_binlog_index_name variable and computes a value for the opt_binlog_index_name variable and computes a value for the
log_bin_index variable. log_bin_index variable.
*/ */
static Sys_var_charptr Sys_binlog_index( static Sys_var_charptr_fscs Sys_binlog_index(
"log_bin_index", "File that holds the names for last binary log files.", "log_bin_index", "File that holds the names for last binary log files.",
READ_ONLY GLOBAL_VAR(log_bin_index), NO_CMD_LINE, READ_ONLY GLOBAL_VAR(log_bin_index), NO_CMD_LINE,
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_relay_log_basename( static Sys_var_charptr_fscs Sys_relay_log_basename(
"relay_log_basename", "relay_log_basename",
"The full path of the relay log file names, excluding the extension.", "The full path of the relay log file names, excluding the extension.",
READ_ONLY GLOBAL_VAR(relay_log_basename), NO_CMD_LINE, READ_ONLY GLOBAL_VAR(relay_log_basename), NO_CMD_LINE,
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_log_bin_basename( static Sys_var_charptr_fscs Sys_log_bin_basename(
"log_bin_basename", "log_bin_basename",
"The full path of the binary log file names, excluding the extension.", "The full path of the binary log file names, excluding the extension.",
READ_ONLY GLOBAL_VAR(log_bin_basename), NO_CMD_LINE, READ_ONLY GLOBAL_VAR(log_bin_basename), NO_CMD_LINE,
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_charptr Sys_relay_log_info_file( static Sys_var_charptr_fscs Sys_relay_log_info_file(
"relay_log_info_file", "The location and name of the file that " "relay_log_info_file", "The location and name of the file that "
"remembers where the SQL replication thread is in the relay logs.", "remembers where the SQL replication thread is in the relay logs.",
READ_ONLY GLOBAL_VAR(relay_log_info_file), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(relay_log_info_file), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_mybool Sys_relay_log_purge( static Sys_var_mybool Sys_relay_log_purge(
"relay_log_purge", "if disabled - do not purge relay logs. " "relay_log_purge", "if disabled - do not purge relay logs. "
...@@ -5208,11 +5206,11 @@ static Sys_var_rpl_filter Sys_replicate_wild_ignore_table( ...@@ -5208,11 +5206,11 @@ static Sys_var_rpl_filter Sys_replicate_wild_ignore_table(
"Tells the slave thread to not replicate to the tables that " "Tells the slave thread to not replicate to the tables that "
"match the given wildcard pattern."); "match the given wildcard pattern.");
static Sys_var_charptr Sys_slave_load_tmpdir( static Sys_var_charptr_fscs Sys_slave_load_tmpdir(
"slave_load_tmpdir", "The location where the slave should put " "slave_load_tmpdir", "The location where the slave should put "
"its temporary files when replicating a LOAD DATA INFILE command", "its temporary files when replicating a LOAD DATA INFILE command",
READ_ONLY GLOBAL_VAR(slave_load_tmpdir), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(slave_load_tmpdir), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_uint Sys_slave_net_timeout( static Sys_var_uint Sys_slave_net_timeout(
"slave_net_timeout", "Number of seconds to wait for more data " "slave_net_timeout", "Number of seconds to wait for more data "
...@@ -5330,7 +5328,7 @@ static Sys_var_charptr Sys_slave_skip_errors( ...@@ -5330,7 +5328,7 @@ static Sys_var_charptr Sys_slave_skip_errors(
"replication when a query event returns an error from the " "replication when a query event returns an error from the "
"provided list", "provided list",
READ_ONLY GLOBAL_VAR(opt_slave_skip_errors), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(opt_slave_skip_errors), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_ulonglong Sys_read_binlog_speed_limit( static Sys_var_ulonglong Sys_read_binlog_speed_limit(
"read_binlog_speed_limit", "Maximum speed(KB/s) to read binlog from" "read_binlog_speed_limit", "Maximum speed(KB/s) to read binlog from"
...@@ -5346,7 +5344,7 @@ static Sys_var_charptr Sys_slave_transaction_retry_errors( ...@@ -5346,7 +5344,7 @@ static Sys_var_charptr Sys_slave_transaction_retry_errors(
"connect error and 2 types of lost connection error are automatically " "connect error and 2 types of lost connection error are automatically "
"added to this list", "added to this list",
READ_ONLY GLOBAL_VAR(opt_slave_transaction_retry_errors), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(opt_slave_transaction_retry_errors), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_ulonglong Sys_relay_log_space_limit( static Sys_var_ulonglong Sys_relay_log_space_limit(
"relay_log_space_limit", "Maximum space to use for all relay logs", "relay_log_space_limit", "Maximum space to use for all relay logs",
...@@ -5486,10 +5484,10 @@ static Sys_var_tz Sys_time_zone( ...@@ -5486,10 +5484,10 @@ static Sys_var_tz Sys_time_zone(
#include "wsrep_sst.h" #include "wsrep_sst.h"
#include "wsrep_binlog.h" #include "wsrep_binlog.h"
static Sys_var_charptr Sys_wsrep_provider( static Sys_var_charptr_fscs Sys_wsrep_provider(
"wsrep_provider", "Path to replication provider library", "wsrep_provider", "Path to replication provider library",
PREALLOCATED GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(WSREP_NONE), DEFAULT(WSREP_NONE),
NO_MUTEX_GUARD, NOT_IN_BINLOG, NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_provider_check), ON_UPDATE(wsrep_provider_update)); ON_CHECK(wsrep_provider_check), ON_UPDATE(wsrep_provider_update));
...@@ -5498,19 +5496,19 @@ static Sys_var_charptr Sys_wsrep_provider_options( ...@@ -5498,19 +5496,19 @@ static Sys_var_charptr Sys_wsrep_provider_options(
"options (see wsrep_provider_options documentation).", "options (see wsrep_provider_options documentation).",
PREALLOCATED GLOBAL_VAR(wsrep_provider_options), PREALLOCATED GLOBAL_VAR(wsrep_provider_options),
CMD_LINE(REQUIRED_ARG), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(""), NO_MUTEX_GUARD, NOT_IN_BINLOG, DEFAULT(""), NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_provider_options_check), ON_CHECK(wsrep_provider_options_check),
ON_UPDATE(wsrep_provider_options_update)); ON_UPDATE(wsrep_provider_options_update));
static Sys_var_charptr Sys_wsrep_data_home_dir( static Sys_var_charptr_fscs Sys_wsrep_data_home_dir(
"wsrep_data_home_dir", "home directory for wsrep provider", "wsrep_data_home_dir", "home directory for wsrep provider",
READ_ONLY GLOBAL_VAR(wsrep_data_home_dir), CMD_LINE(REQUIRED_ARG), READ_ONLY GLOBAL_VAR(wsrep_data_home_dir), CMD_LINE(REQUIRED_ARG),
IN_FS_CHARSET, DEFAULT(mysql_real_data_home)); DEFAULT(mysql_real_data_home));
static Sys_var_charptr Sys_wsrep_cluster_name( static Sys_var_charptr Sys_wsrep_cluster_name(
"wsrep_cluster_name", "Name for the cluster", "wsrep_cluster_name", "Name for the cluster",
PREALLOCATED GLOBAL_VAR(wsrep_cluster_name), CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(wsrep_cluster_name), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(WSREP_CLUSTER_NAME), DEFAULT(WSREP_CLUSTER_NAME),
NO_MUTEX_GUARD, NOT_IN_BINLOG, NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_cluster_name_check), ON_CHECK(wsrep_cluster_name_check),
ON_UPDATE(wsrep_cluster_name_update)); ON_UPDATE(wsrep_cluster_name_update));
...@@ -5520,7 +5518,7 @@ static Sys_var_charptr Sys_wsrep_cluster_address ( ...@@ -5520,7 +5518,7 @@ static Sys_var_charptr Sys_wsrep_cluster_address (
"wsrep_cluster_address", "Address to initially connect to cluster", "wsrep_cluster_address", "Address to initially connect to cluster",
PREALLOCATED GLOBAL_VAR(wsrep_cluster_address), PREALLOCATED GLOBAL_VAR(wsrep_cluster_address),
CMD_LINE(REQUIRED_ARG), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(""), DEFAULT(""),
&PLock_wsrep_cluster_config, NOT_IN_BINLOG, &PLock_wsrep_cluster_config, NOT_IN_BINLOG,
ON_CHECK(wsrep_cluster_address_check), ON_CHECK(wsrep_cluster_address_check),
ON_UPDATE(wsrep_cluster_address_update)); ON_UPDATE(wsrep_cluster_address_update));
...@@ -5530,7 +5528,7 @@ static Sys_var_charptr Sys_wsrep_node_name ( ...@@ -5530,7 +5528,7 @@ static Sys_var_charptr Sys_wsrep_node_name (
"wsrep_sst_donor as a preferred donor. Note that multiple nodes " "wsrep_sst_donor as a preferred donor. Note that multiple nodes "
"in a cluster can have the same name.", "in a cluster can have the same name.",
PREALLOCATED GLOBAL_VAR(wsrep_node_name), CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(wsrep_node_name), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(glob_hostname), NO_MUTEX_GUARD, NOT_IN_BINLOG, DEFAULT(glob_hostname), NO_MUTEX_GUARD, NOT_IN_BINLOG,
wsrep_node_name_check, wsrep_node_name_update); wsrep_node_name_check, wsrep_node_name_update);
static Sys_var_charptr Sys_wsrep_node_address ( static Sys_var_charptr Sys_wsrep_node_address (
...@@ -5538,7 +5536,7 @@ static Sys_var_charptr Sys_wsrep_node_address ( ...@@ -5538,7 +5536,7 @@ static Sys_var_charptr Sys_wsrep_node_address (
"the format ip address[:port]. Used in situations where autoguessing " "the format ip address[:port]. Used in situations where autoguessing "
"is not reliable. As of MariaDB 10.1.8, supports IPv6.", "is not reliable. As of MariaDB 10.1.8, supports IPv6.",
PREALLOCATED GLOBAL_VAR(wsrep_node_address), CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(wsrep_node_address), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(""), DEFAULT(""),
NO_MUTEX_GUARD, NOT_IN_BINLOG, NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_node_address_check), ON_CHECK(wsrep_node_address_check),
ON_UPDATE(wsrep_node_address_update)); ON_UPDATE(wsrep_node_address_update));
...@@ -5546,7 +5544,7 @@ static Sys_var_charptr Sys_wsrep_node_address ( ...@@ -5546,7 +5544,7 @@ static Sys_var_charptr Sys_wsrep_node_address (
static Sys_var_charptr Sys_wsrep_node_incoming_address( static Sys_var_charptr Sys_wsrep_node_incoming_address(
"wsrep_node_incoming_address", "Client connection address", "wsrep_node_incoming_address", "Client connection address",
PREALLOCATED GLOBAL_VAR(wsrep_node_incoming_address),CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(wsrep_node_incoming_address),CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(WSREP_NODE_INCOMING_AUTO)); DEFAULT(WSREP_NODE_INCOMING_AUTO));
static Sys_var_ulong Sys_wsrep_slave_threads( static Sys_var_ulong Sys_wsrep_slave_threads(
"wsrep_slave_threads", "Number of slave appliers to launch", "wsrep_slave_threads", "Number of slave appliers to launch",
...@@ -5559,7 +5557,7 @@ static Sys_var_ulong Sys_wsrep_slave_threads( ...@@ -5559,7 +5557,7 @@ static Sys_var_ulong Sys_wsrep_slave_threads(
static Sys_var_charptr Sys_wsrep_dbug_option( static Sys_var_charptr Sys_wsrep_dbug_option(
"wsrep_dbug_option", "DBUG options to provider library", "wsrep_dbug_option", "DBUG options to provider library",
GLOBAL_VAR(wsrep_dbug_option),CMD_LINE(REQUIRED_ARG), GLOBAL_VAR(wsrep_dbug_option),CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT("")); DEFAULT(""));
static const char *wsrep_debug_names[]= static const char *wsrep_debug_names[]=
{ "NONE", "SERVER", "TRANSACTION", "STREAMING", "CLIENT", NullS }; { "NONE", "SERVER", "TRANSACTION", "STREAMING", "CLIENT", NullS };
...@@ -5641,14 +5639,14 @@ static Sys_var_mybool Sys_wsrep_drupal_282555_workaround( ...@@ -5641,14 +5639,14 @@ static Sys_var_mybool Sys_wsrep_drupal_282555_workaround(
static Sys_var_charptr sys_wsrep_sst_method( static Sys_var_charptr sys_wsrep_sst_method(
"wsrep_sst_method", "State snapshot transfer method", "wsrep_sst_method", "State snapshot transfer method",
GLOBAL_VAR(wsrep_sst_method),CMD_LINE(REQUIRED_ARG), GLOBAL_VAR(wsrep_sst_method),CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(WSREP_SST_DEFAULT), NO_MUTEX_GUARD, NOT_IN_BINLOG, DEFAULT(WSREP_SST_DEFAULT), NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_sst_method_check)); ON_CHECK(wsrep_sst_method_check));
static Sys_var_charptr Sys_wsrep_sst_receive_address( static Sys_var_charptr Sys_wsrep_sst_receive_address(
"wsrep_sst_receive_address", "Address where node is waiting for " "wsrep_sst_receive_address", "Address where node is waiting for "
"SST contact", "SST contact",
GLOBAL_VAR(wsrep_sst_receive_address),CMD_LINE(REQUIRED_ARG), GLOBAL_VAR(wsrep_sst_receive_address),CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(WSREP_SST_ADDRESS_AUTO), NO_MUTEX_GUARD, DEFAULT(WSREP_SST_ADDRESS_AUTO), NO_MUTEX_GUARD,
NOT_IN_BINLOG, NOT_IN_BINLOG,
ON_CHECK(wsrep_sst_receive_address_check), ON_CHECK(wsrep_sst_receive_address_check),
ON_UPDATE(wsrep_sst_receive_address_update)); ON_UPDATE(wsrep_sst_receive_address_update));
...@@ -5656,7 +5654,7 @@ static Sys_var_charptr Sys_wsrep_sst_receive_address( ...@@ -5656,7 +5654,7 @@ static Sys_var_charptr Sys_wsrep_sst_receive_address(
static Sys_var_charptr Sys_wsrep_sst_auth( static Sys_var_charptr Sys_wsrep_sst_auth(
"wsrep_sst_auth", "Authentication for SST connection", "wsrep_sst_auth", "Authentication for SST connection",
PREALLOCATED GLOBAL_VAR(wsrep_sst_auth), CMD_LINE(REQUIRED_ARG), PREALLOCATED GLOBAL_VAR(wsrep_sst_auth), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(NULL), NO_MUTEX_GUARD, DEFAULT(NULL), NO_MUTEX_GUARD,
NOT_IN_BINLOG, NOT_IN_BINLOG,
ON_CHECK(wsrep_sst_auth_check), ON_CHECK(wsrep_sst_auth_check),
ON_UPDATE(wsrep_sst_auth_update)); ON_UPDATE(wsrep_sst_auth_update));
...@@ -5664,7 +5662,7 @@ static Sys_var_charptr Sys_wsrep_sst_auth( ...@@ -5664,7 +5662,7 @@ static Sys_var_charptr Sys_wsrep_sst_auth(
static Sys_var_charptr Sys_wsrep_sst_donor( static Sys_var_charptr Sys_wsrep_sst_donor(
"wsrep_sst_donor", "preferred donor node for the SST", "wsrep_sst_donor", "preferred donor node for the SST",
GLOBAL_VAR(wsrep_sst_donor),CMD_LINE(REQUIRED_ARG), GLOBAL_VAR(wsrep_sst_donor),CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(""), NO_MUTEX_GUARD, NOT_IN_BINLOG, DEFAULT(""), NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_sst_donor_check), ON_CHECK(wsrep_sst_donor_check),
ON_UPDATE(wsrep_sst_donor_update)); ON_UPDATE(wsrep_sst_donor_update));
...@@ -5686,7 +5684,7 @@ static Sys_var_charptr Sys_wsrep_start_position ( ...@@ -5686,7 +5684,7 @@ static Sys_var_charptr Sys_wsrep_start_position (
"wsrep_start_position", "global transaction position to start from ", "wsrep_start_position", "global transaction position to start from ",
PREALLOCATED GLOBAL_VAR(wsrep_start_position), PREALLOCATED GLOBAL_VAR(wsrep_start_position),
CMD_LINE(REQUIRED_ARG), CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT(WSREP_START_POSITION_ZERO), DEFAULT(WSREP_START_POSITION_ZERO),
NO_MUTEX_GUARD, NOT_IN_BINLOG, NO_MUTEX_GUARD, NOT_IN_BINLOG,
ON_CHECK(wsrep_start_position_check), ON_CHECK(wsrep_start_position_check),
ON_UPDATE(wsrep_start_position_update)); ON_UPDATE(wsrep_start_position_update));
...@@ -5706,7 +5704,7 @@ static Sys_var_ulong Sys_wsrep_max_ws_rows ( ...@@ -5706,7 +5704,7 @@ static Sys_var_ulong Sys_wsrep_max_ws_rows (
static Sys_var_charptr Sys_wsrep_notify_cmd( static Sys_var_charptr Sys_wsrep_notify_cmd(
"wsrep_notify_cmd", "", "wsrep_notify_cmd", "",
GLOBAL_VAR(wsrep_notify_cmd),CMD_LINE(REQUIRED_ARG), GLOBAL_VAR(wsrep_notify_cmd),CMD_LINE(REQUIRED_ARG),
IN_SYSTEM_CHARSET, DEFAULT("")); DEFAULT(""));
static Sys_var_mybool Sys_wsrep_certify_nonPK( static Sys_var_mybool Sys_wsrep_certify_nonPK(
"wsrep_certify_nonPK", "Certify tables with no primary key", "wsrep_certify_nonPK", "Certify tables with no primary key",
...@@ -5893,7 +5891,7 @@ static char *wsrep_patch_version_ptr; ...@@ -5893,7 +5891,7 @@ static char *wsrep_patch_version_ptr;
static Sys_var_charptr Sys_wsrep_patch_version( static Sys_var_charptr Sys_wsrep_patch_version(
"wsrep_patch_version", "Wsrep patch version, for example wsrep_25.10.", "wsrep_patch_version", "Wsrep patch version, for example wsrep_25.10.",
READ_ONLY GLOBAL_VAR(wsrep_patch_version_ptr), CMD_LINE_HELP_ONLY, READ_ONLY GLOBAL_VAR(wsrep_patch_version_ptr), CMD_LINE_HELP_ONLY,
IN_SYSTEM_CHARSET, DEFAULT(WSREP_PATCH_VERSION)); DEFAULT(WSREP_PATCH_VERSION));
#endif /* WITH_WSREP */ #endif /* WITH_WSREP */
...@@ -5959,14 +5957,14 @@ static Sys_var_mybool Sys_tcp_nodelay( ...@@ -5959,14 +5957,14 @@ static Sys_var_mybool Sys_tcp_nodelay(
ON_CHECK(check_session_only_variable), ON_CHECK(check_session_only_variable),
ON_UPDATE(update_tcp_nodelay)); ON_UPDATE(update_tcp_nodelay));
static Sys_var_charptr Sys_ignore_db_dirs( static Sys_var_charptr_fscs Sys_ignore_db_dirs(
"ignore_db_dirs", "ignore_db_dirs",
"Specifies a directory to add to the ignore list when collecting " "Specifies a directory to add to the ignore list when collecting "
"database names from the datadir. Put a blank argument to reset " "database names from the datadir. Put a blank argument to reset "
"the list accumulated so far.", "the list accumulated so far.",
READ_ONLY GLOBAL_VAR(opt_ignore_db_dirs), READ_ONLY GLOBAL_VAR(opt_ignore_db_dirs),
CMD_LINE(REQUIRED_ARG, OPT_IGNORE_DB_DIRECTORY), CMD_LINE(REQUIRED_ARG, OPT_IGNORE_DB_DIRECTORY),
IN_FS_CHARSET, DEFAULT(0)); DEFAULT(0));
static Sys_var_ulong Sys_sp_cache_size( static Sys_var_ulong Sys_sp_cache_size(
"stored_program_cache", "stored_program_cache",
...@@ -6410,7 +6408,7 @@ static Sys_var_ulonglong Sys_max_thread_mem( ...@@ -6410,7 +6408,7 @@ static Sys_var_ulonglong Sys_max_thread_mem(
static Sys_var_sesvartrack Sys_track_session_sys_vars( static Sys_var_sesvartrack Sys_track_session_sys_vars(
"session_track_system_variables", "session_track_system_variables",
"Track changes in registered system variables. ", "Track changes in registered system variables. ",
CMD_LINE(REQUIRED_ARG), IN_SYSTEM_CHARSET, CMD_LINE(REQUIRED_ARG),
DEFAULT("autocommit,character_set_client,character_set_connection," DEFAULT("autocommit,character_set_client,character_set_connection,"
"character_set_results,time_zone")); "character_set_results,time_zone"));
......
...@@ -97,7 +97,6 @@ ...@@ -97,7 +97,6 @@
exit(255); \ exit(255); \
} }
enum charset_enum {IN_SYSTEM_CHARSET, IN_FS_CHARSET};
static const char *bool_values[3]= {"OFF", "ON", 0}; static const char *bool_values[3]= {"OFF", "ON", 0};
TYPELIB bool_typelib={ array_elements(bool_values)-1, "", bool_values, 0 }; TYPELIB bool_typelib={ array_elements(bool_values)-1, "", bool_values, 0 };
...@@ -449,9 +448,6 @@ public: ...@@ -449,9 +448,6 @@ public:
or not. The state of the initial value is specified in the constructor, or not. The state of the initial value is specified in the constructor,
after that it's managed automatically. The value of NULL is supported. after that it's managed automatically. The value of NULL is supported.
Class specific constructor arguments:
enum charset_enum is_os_charset_arg
Backing store: char* Backing store: char*
@note @note
...@@ -465,7 +461,6 @@ public: ...@@ -465,7 +461,6 @@ public:
Sys_var_charptr_base(const char *name_arg, Sys_var_charptr_base(const char *name_arg,
const char *comment, int flag_args, ptrdiff_t off, size_t size, const char *comment, int flag_args, ptrdiff_t off, size_t size,
CMD_LINE getopt, CMD_LINE getopt,
enum charset_enum is_os_charset_arg,
const char *def_val, PolyLock *lock=0, const char *def_val, PolyLock *lock=0,
enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG,
on_check_function on_check_func=0, on_check_function on_check_func=0,
...@@ -476,7 +471,6 @@ public: ...@@ -476,7 +471,6 @@ public:
lock, binlog_status_arg, on_check_func, on_update_func, lock, binlog_status_arg, on_check_func, on_update_func,
substitute) substitute)
{ {
is_os_charset= is_os_charset_arg == IN_FS_CHARSET;
/* /*
use GET_STR_ALLOC - if ALLOCATED it must be *always* allocated, use GET_STR_ALLOC - if ALLOCATED it must be *always* allocated,
otherwise (GET_STR) you'll never know whether to free it or not. otherwise (GET_STR) you'll never know whether to free it or not.
...@@ -566,14 +560,13 @@ public: ...@@ -566,14 +560,13 @@ public:
Sys_var_charptr(const char *name_arg, Sys_var_charptr(const char *name_arg,
const char *comment, int flag_args, ptrdiff_t off, size_t size, const char *comment, int flag_args, ptrdiff_t off, size_t size,
CMD_LINE getopt, CMD_LINE getopt,
enum charset_enum is_os_charset_arg,
const char *def_val, PolyLock *lock=0, const char *def_val, PolyLock *lock=0,
enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG,
on_check_function on_check_func=0, on_check_function on_check_func=0,
on_update_function on_update_func=0, on_update_function on_update_func=0,
const char *substitute=0) : const char *substitute=0) :
Sys_var_charptr_base(name_arg, comment, flag_args, off, size, getopt, Sys_var_charptr_base(name_arg, comment, flag_args, off, size, getopt,
is_os_charset_arg, def_val, lock, binlog_status_arg, def_val, lock, binlog_status_arg,
on_check_func, on_update_func, substitute) on_check_func, on_update_func, substitute)
{ {
SYSVAR_ASSERT(scope() == GLOBAL); SYSVAR_ASSERT(scope() == GLOBAL);
...@@ -589,6 +582,18 @@ public: ...@@ -589,6 +582,18 @@ public:
{ DBUG_ASSERT(FALSE); } { DBUG_ASSERT(FALSE); }
}; };
class Sys_var_charptr_fscs: public Sys_var_charptr
{
using Sys_var_charptr::Sys_var_charptr;
public:
CHARSET_INFO *charset(THD *thd) const override
{
return thd->variables.character_set_filesystem;
}
};
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
class Sys_var_sesvartrack: public Sys_var_charptr_base class Sys_var_sesvartrack: public Sys_var_charptr_base
{ {
...@@ -596,11 +601,10 @@ public: ...@@ -596,11 +601,10 @@ public:
Sys_var_sesvartrack(const char *name_arg, Sys_var_sesvartrack(const char *name_arg,
const char *comment, const char *comment,
CMD_LINE getopt, CMD_LINE getopt,
enum charset_enum is_os_charset_arg,
const char *def_val, PolyLock *lock= 0) : const char *def_val, PolyLock *lock= 0) :
Sys_var_charptr_base(name_arg, comment, Sys_var_charptr_base(name_arg, comment,
SESSION_VAR(session_track_system_variables), SESSION_VAR(session_track_system_variables),
getopt, is_os_charset_arg, def_val, lock, getopt, def_val, lock,
VARIABLE_NOT_IN_BINLOG, 0, 0, 0) VARIABLE_NOT_IN_BINLOG, 0, 0, 0)
{} {}
bool do_check(THD *thd, set_var *var) bool do_check(THD *thd, set_var *var)
...@@ -649,14 +653,12 @@ public: ...@@ -649,14 +653,12 @@ public:
class Sys_var_proxy_user: public sys_var class Sys_var_proxy_user: public sys_var
{ {
public: public:
Sys_var_proxy_user(const char *name_arg, Sys_var_proxy_user(const char *name_arg, const char *comment)
const char *comment, enum charset_enum is_os_charset_arg)
: sys_var(&all_sys_vars, name_arg, comment, : sys_var(&all_sys_vars, name_arg, comment,
sys_var::READONLY+sys_var::ONLY_SESSION, 0, NO_GETOPT, sys_var::READONLY+sys_var::ONLY_SESSION, 0, NO_GETOPT,
NO_ARG, SHOW_CHAR, 0, NULL, VARIABLE_NOT_IN_BINLOG, NO_ARG, SHOW_CHAR, 0, NULL, VARIABLE_NOT_IN_BINLOG,
NULL, NULL, NULL) NULL, NULL, NULL)
{ {
is_os_charset= is_os_charset_arg == IN_FS_CHARSET;
option.var_type|= GET_STR; option.var_type|= GET_STR;
} }
bool do_check(THD *thd, set_var *var) bool do_check(THD *thd, set_var *var)
...@@ -689,9 +691,8 @@ protected: ...@@ -689,9 +691,8 @@ protected:
class Sys_var_external_user : public Sys_var_proxy_user class Sys_var_external_user : public Sys_var_proxy_user
{ {
public: public:
Sys_var_external_user(const char *name_arg, const char *comment_arg, Sys_var_external_user(const char *name_arg, const char *comment_arg)
enum charset_enum is_os_charset_arg) : Sys_var_proxy_user (name_arg, comment_arg)
: Sys_var_proxy_user (name_arg, comment_arg, is_os_charset_arg)
{} {}
protected: protected:
...@@ -743,9 +744,6 @@ protected: ...@@ -743,9 +744,6 @@ protected:
The class for string variables. Useful for strings that aren't necessarily The class for string variables. Useful for strings that aren't necessarily
\0-terminated. Otherwise the same as Sys_var_charptr. \0-terminated. Otherwise the same as Sys_var_charptr.
Class specific constructor arguments:
enum charset_enum is_os_charset_arg
Backing store: LEX_CSTRING Backing store: LEX_CSTRING
@note @note
...@@ -757,14 +755,13 @@ public: ...@@ -757,14 +755,13 @@ public:
Sys_var_lexstring(const char *name_arg, Sys_var_lexstring(const char *name_arg,
const char *comment, int flag_args, ptrdiff_t off, size_t size, const char *comment, int flag_args, ptrdiff_t off, size_t size,
CMD_LINE getopt, CMD_LINE getopt,
enum charset_enum is_os_charset_arg,
const char *def_val, PolyLock *lock=0, const char *def_val, PolyLock *lock=0,
enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG,
on_check_function on_check_func=0, on_check_function on_check_func=0,
on_update_function on_update_func=0, on_update_function on_update_func=0,
const char *substitute=0) const char *substitute=0)
: Sys_var_charptr(name_arg, comment, flag_args, off, sizeof(char*), : Sys_var_charptr(name_arg, comment, flag_args, off, sizeof(char*),
getopt, is_os_charset_arg, def_val, lock, binlog_status_arg, getopt, def_val, lock, binlog_status_arg,
on_check_func, on_update_func, substitute) on_check_func, on_update_func, substitute)
{ {
global_var(LEX_CSTRING).length= strlen(def_val); global_var(LEX_CSTRING).length= strlen(def_val);
...@@ -793,7 +790,6 @@ public: ...@@ -793,7 +790,6 @@ public:
Sys_var_session_lexstring(const char *name_arg, Sys_var_session_lexstring(const char *name_arg,
const char *comment, int flag_args, const char *comment, int flag_args,
ptrdiff_t off, size_t size, CMD_LINE getopt, ptrdiff_t off, size_t size, CMD_LINE getopt,
enum charset_enum is_os_charset_arg,
const char *def_val, size_t max_length_arg, const char *def_val, size_t max_length_arg,
on_check_function on_check_func=0, on_check_function on_check_func=0,
on_update_function on_update_func=0) on_update_function on_update_func=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