MySQL 8.4.2
Source Code Documentation
|
A variant of enum where: More...
#include <sys_vars.h>
Classes | |
struct | ALIAS |
Public Member Functions | |
Sys_var_multi_enum (const char *name_arg, const char *comment, int flag_args, ptrdiff_t off, size_t size, CMD_LINE getopt, const ALIAS aliases_arg[], uint value_count_arg, uint def_val, uint command_line_no_value_arg, PolyLock *lock=nullptr, enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, on_check_function on_check_func=nullptr, on_update_function on_update_func=nullptr, const char *substitute=nullptr, int parse_flag=PARSE_NORMAL) | |
Enumerated type system variable. More... | |
int | find_value (const char *text) |
Return the numeric value for a given alias string, or -1 if the string is not a valid alias. More... | |
const char * | fixup_command_line (const char *value_str) |
Because of limitations in the command-line parsing library, the value given on the command-line cannot be automatically copied to the global value. More... | |
bool | do_check (THD *, set_var *var) override |
bool | check_update_type (Item_result type) override |
bool | session_update (THD *, set_var *) override |
bool | global_update (THD *, set_var *) override |
void | session_save_default (THD *, set_var *) override |
save the session default value of the variable in var More... | |
void | global_save_default (THD *, set_var *var) override |
save the global default value of the variable in var More... | |
void | saved_value_to_string (THD *, set_var *var, char *def_val) override |
This function converts value stored in save_result to string. More... | |
const uchar * | session_value_ptr (THD *, THD *, std::string_view) override |
A pointer to a value of the variable for SHOW. More... | |
const uchar * | global_value_ptr (THD *, std::string_view) override |
Public Member Functions inherited from sys_var | |
sys_var (sys_var_chain *chain, const char *name_arg, const char *comment, int flag_args, ptrdiff_t off, int getopt_id, enum get_opt_arg_type getopt_arg_type, SHOW_TYPE show_val_type_arg, longlong def_val, PolyLock *lock, enum binlog_status_enum binlog_status_arg, on_check_function on_check_func, on_update_function on_update_func, const char *substitute, int parse_flag, sys_var *persisted_alias=nullptr, bool is_persisted_deprecated=false) | |
sys_var constructor More... | |
virtual | ~sys_var ()=default |
const char * | get_deprecation_substitute () |
virtual void | cleanup () |
All the cleanup procedures should be performed here. More... | |
virtual sys_var_pluginvar * | cast_pluginvar () |
downcast for sys_var_pluginvar. More... | |
bool | check (THD *thd, set_var *var) |
const uchar * | value_ptr (THD *running_thd, THD *target_thd, enum_var_type type, std::string_view keycache_name) |
const uchar * | value_ptr (THD *thd, enum_var_type type, std::string_view keycache_name) |
virtual void | update_default (longlong new_def_value) |
virtual longlong | get_default () |
virtual longlong | get_min_value () |
virtual ulonglong | get_max_value () |
virtual ulong | get_var_type () |
Returns variable type. More... | |
virtual void | set_arg_source (get_opt_arg_source *) |
virtual void | set_is_plugin (bool) |
virtual enum_variable_source | get_source () |
virtual const char * | get_source_name () |
virtual void | set_source (enum_variable_source src) |
virtual bool | set_source_name (const char *path) |
virtual bool | set_user (const char *usr) |
virtual const char * | get_user () |
virtual const char * | get_host () |
virtual bool | set_host (const char *hst) |
virtual ulonglong | get_timestamp () const |
virtual void | set_user_host (THD *thd) |
my_option * | get_option () |
virtual void | set_timestamp () |
virtual void | set_timestamp (ulonglong ts) |
virtual bool | is_non_persistent () |
bool | set_default (THD *thd, set_var *var) |
Update the system variable with the default value from either session or global scope. More... | |
bool | update (THD *thd, set_var *var) |
SHOW_TYPE | show_type () |
int | scope () const |
const CHARSET_INFO * | charset (THD *thd) |
bool | is_readonly () const |
bool | not_visible () const |
bool | is_trilevel () const |
bool | is_persist_readonly () const |
bool | is_parse_early () const |
bool | is_sensitive () const |
bool | is_hint_updateable () const |
Check if the variable can be set using SET_VAR hint. More... | |
bool | is_struct () |
the following is only true for keycache variables, that support the syntax @keycache_name.variable_name More... | |
bool | is_written_to_binlog (enum_var_type type) |
bool | check_scope (enum_var_type query_type) |
Return true for success if: Global query and variable scope is GLOBAL or SESSION, or Session query and variable scope is SESSION or ONLY_SESSION. More... | |
bool | is_global_persist (enum_var_type type) |
bool | is_settable_at_command_line () |
Return true if settable at the command line. More... | |
bool | register_option (std::vector< my_option > *array, int parse_flags) |
void | do_deprecated_warning (THD *thd) |
Item * | copy_value (THD *thd) |
Create item from system variable value. More... | |
void | save_default (THD *thd, set_var *var) |
bool | check_if_sensitive_in_context (THD *, bool suppress_errors=true) const |
Private Attributes | |
const uint | value_count |
The number of allowed numeric values. More... | |
const ALIAS * | aliases |
Array of all textual aliases. More... | |
uint | alias_count |
The number of elements of aliases (computed in the constructor). More... | |
const char * | command_line_value |
Pointer to the value set by the command line (set by the command line parser, copied to the global value in fixup_command_line()). More... | |
uint | command_line_no_value |
Additional Inherited Members | |
Public Types inherited from sys_var | |
enum | flag_enum { GLOBAL = 0x0001 , SESSION = 0x0002 , ONLY_SESSION = 0x0004 , SCOPE_MASK = 0x03FF , READONLY = 0x0400 , ALLOCATED = 0x0800 , INVISIBLE = 0x1000 , TRI_LEVEL = 0x2000 , NOTPERSIST = 0x4000 , HINT_UPDATEABLE = 0x8000 , PERSIST_AS_READ_ONLY = 0x10000 , SENSITIVE = 0x20000 } |
enum | binlog_status_enum { VARIABLE_NOT_IN_BINLOG , SESSION_VARIABLE_IN_BINLOG } |
Enumeration type to indicate for a system variable whether it will be written to the binlog or not. More... | |
Public Attributes inherited from sys_var | |
sys_var * | next |
LEX_CSTRING | name |
sys_var * | m_persisted_alias |
If the variable has an alias in the persisted variables file, this should point to it. More... | |
bool | m_is_persisted_deprecated |
If m_persist_alias is set, and the current variable is deprecated and m_persist_alias is the recommended substitute, then this flag should be set to true. More... | |
enum sys_var::binlog_status_enum | binlog_status |
Static Public Attributes inherited from sys_var | |
static const int | PARSE_EARLY = 1 |
static const int | PARSE_NORMAL = 2 |
Protected Types inherited from sys_var | |
typedef bool(* | on_check_function) (sys_var *self, THD *thd, set_var *var) |
typedef bool(* | pre_update_function) (sys_var *self, THD *thd, set_var *var) |
typedef bool(* | on_update_function) (sys_var *self, THD *thd, enum_var_type type) |
Protected Member Functions inherited from sys_var | |
uchar * | session_var_ptr (THD *thd) |
A pointer to a storage area of the variable, to the raw data. More... | |
uchar * | global_var_ptr () |
Protected Attributes inherited from sys_var | |
int | flags |
or'ed flag_enum values More... | |
int | m_parse_flag |
either PARSE_EARLY or PARSE_NORMAL. More... | |
const SHOW_TYPE | show_val_type |
what value_ptr() returns for sql_show.cc More... | |
my_option | option |
min, max, default values are stored here More... | |
PolyLock * | guard |
second lock that protects the variable More... | |
ptrdiff_t | offset |
offset to the value from global_system_variables More... | |
on_check_function | on_check |
pre_update_function | pre_update |
Pointer to function to be invoked before updating system variable (but after calling on_check hook), while we do not hold any locks yet. More... | |
on_update_function | on_update |
const char *const | deprecation_substitute |
bool | is_os_charset |
true if the value is in character_set_filesystem More... | |
struct get_opt_arg_source | source |
char | user [USERNAME_CHAR_LENGTH+1] |
char | host [HOSTNAME_LENGTH+1] |
ulonglong | timestamp |
A variant of enum where:
This exists mainly to allow extending a variable that once was boolean in a GA version, into an enumeration type. Booleans accept multiple aliases (0=off=false, 1=on=true), but Sys_var_enum does not, so we could not use Sys_var_enum without breaking backward compatibility. Moreover, booleans default to false if option is not given, and true if option is given without value.
This is incompatible with boolean in the following sense: 'SELECT @variable' returns 0 or 1 for a boolean, whereas this class (similar to enum) returns the textual form. (Note that both boolean, enum, and this class return the textual form in SHOW VARIABLES and SELECT * FROM information_schema.variables).
See enforce_gtid_consistency for an example of how this can be used.
|
inline |
Enumerated type system variable.
name_arg | See sys_var::sys_var() |
comment | See sys_var::sys_var() |
flag_args | See sys_var::sys_var() |
off | See sys_var::sys_var() |
size | See sys_var::sys_var() |
getopt | See sys_var::sys_var() |
aliases_arg | Array of ALIASes, indicating which textual values map to which number. Should be terminated with an ALIAS having member variable alias set to NULL. The first ‘value_count_arg’ elements must map to 0, 1, etc; these will be used when the value is displayed. Remaining elements may appear in arbitrary order. |
value_count_arg | The number of allowed integer values. |
def_val | The default value if no command line option is given. This must be a valid index into the aliases_arg array, but it does not have to be less than value_count. The corresponding alias will be used in mysqld –help to show the default value. |
command_line_no_value_arg | The default value if a command line option is given without a value ('–command-line-option' without '=VALUE'). This must be less than value_count_arg. |
lock | See sys_var::sys_var() |
binlog_status_arg | See sys_var::sys_var() |
on_check_func | See sys_var::sys_var() |
on_update_func | See sys_var::sys_var() |
substitute | See sys_var::sys_var() |
parse_flag | See sys_var::sys_var() |
|
inlineoverridevirtual |
Implements sys_var.
Implements sys_var.
|
inline |
Return the numeric value for a given alias string, or -1 if the string is not a valid alias.
|
inline |
Because of limitations in the command-line parsing library, the value given on the command-line cannot be automatically copied to the global value.
Instead, inheritants of this class should call this function from mysqld.cc:mysqld_get_one_option.
value_str | Pointer to the value specified on the command line (as in –option=VALUE). |
NULL | Success. |
non-NULL | Pointer to the invalid string that was used as argument. |
save the global default value of the variable in var
Implements sys_var.
Implements sys_var.
Reimplemented in Sys_var_enforce_gtid_consistency.
|
inlineoverridevirtual |
Reimplemented from sys_var.
|
inlineoverridevirtual |
This function converts value stored in save_result to string.
This function must be called after calling save_default() as save_default() will store default value to save_result.
Implements sys_var.
save the session default value of the variable in var
Implements sys_var.
Implements sys_var.
|
inlineoverridevirtual |
A pointer to a value of the variable for SHOW.
It must be of show_val_type type (bool for SHOW_BOOL, int for SHOW_INT, longlong for SHOW_LONGLONG, etc).
Reimplemented from sys_var.
|
private |
The number of elements of aliases (computed in the constructor).
|
private |
Array of all textual aliases.
|
private |
|
private |
Pointer to the value set by the command line (set by the command line parser, copied to the global value in fixup_command_line()).
|
private |
The number of allowed numeric values.