24#ifndef _sql_comp_common_h 
   25#define _sql_comp_common_h 
   55#define OPTION_SET_LIMITS(type, options, opt) \ 
   56  options->var_type = type;                   \ 
   57  options->def_value = (opt)->def_val;        \ 
   58  options->min_value = (opt)->min_val;        \ 
   59  options->max_value = (opt)->max_val;        \ 
   60  options->block_size = (long)(opt)->blk_sz 
   62#define OPTION_SET_LIMITS_DOUBLE(options, opt)                            \ 
   63  options->var_type = GET_DOUBLE;                                         \ 
   64  options->def_value = (longlong)getopt_double2ulonglong((opt)->def_val); \ 
   65  options->min_value = (longlong)getopt_double2ulonglong((opt)->min_val); \ 
   66  options->max_value = getopt_double2ulonglong((opt)->max_val);           \ 
   67  options->block_size = (long)(opt)->blk_sz; 
   73#undef MYSQL_SYSVAR_NAME 
   74#define MYSQL_SYSVAR_NAME(name) name 
   75#define PLUGIN_VAR_TYPEMASK 0x007f 
   76#define PLUGIN_VAR_WITH_SIGN_TYPEMASK 0x00ff 
   78#define EXTRA_OPTIONS 3  
  205    if (*
p == 
'_') *
p = 
'-';
 
  228                            const std::nothrow_t &arg
 
  229                            [[maybe_unused]] = std::nothrow) 
noexcept {
 
  233  static void *
operator new(
size_t size) {
 
  237  static void operator delete(
void *ptr_arg [[maybe_unused]],
 
  238                              size_t size [[maybe_unused]]) {
 
  242  static void operator delete(
 
  243      void *, 
MEM_ROOT *, 
const std::nothrow_t &) 
noexcept { 
 
  246  static void operator delete(
void *ptr) { 
my_free(ptr); }
 
  251            chain, name_arg, plugin_var_arg->
comment,
 
  284                      std::string_view keycache_name);
 
  286                      std::string_view keycache_name) {
 
  290                                 std::string_view keycache_name)
 override {
 
  294                                std::string_view keycache_name)
 override {
 
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
 
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:928
 
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
 
std::unordered_map, but with my_malloc, so that you can track the memory used using PSI memory keys.
Definition: map_helpers.h:157
 
set_var_base descendant for assignments to the system variables.
Definition: set_var.h:983
 
Definition: sql_plugin_var.h:211
 
TYPELIB * plugin_var_typelib(void)
Definition: sql_plugin_var.cc:333
 
SYS_VAR * plugin_var
Definition: sql_plugin_var.h:217
 
uchar * do_value_ptr(THD *thd, enum_var_type type, std::string_view keycache_name)
Definition: sql_plugin_var.h:285
 
bool is_plugin
Definition: sql_plugin_var.h:215
 
void set_arg_source(get_opt_arg_source *src) override
Definition: sql_plugin_var.h:305
 
void global_save_default(THD *, set_var *) override
save the global default value of the variable in var
Definition: sql_plugin_var.h:300
 
void session_save_default(THD *, set_var *) override
save the session default value of the variable in var
Definition: sql_plugin_var.h:298
 
bool is_non_persistent() override
Definition: sql_plugin_var.h:309
 
sys_var_pluginvar(sys_var_chain *chain, const char *name_arg, SYS_VAR *plugin_var_arg)
Definition: sql_plugin_var.h:248
 
st_plugin_int * plugin
Definition: sql_plugin_var.h:216
 
bool session_update(THD *thd, set_var *var) override
Definition: sql_plugin_var.cc:378
 
ulonglong get_max_value() override
Definition: sql_plugin_var.cc:446
 
const uchar * session_value_ptr(THD *running_thd, THD *target_thd, std::string_view keycache_name) override
A pointer to a value of the variable for SHOW.
Definition: sql_plugin_var.h:289
 
bool check_update_type(Item_result type) override
Definition: sql_plugin_var.cc:302
 
void set_is_plugin(bool val) override
Definition: sql_plugin_var.h:312
 
uchar * do_value_ptr(THD *running_thd, THD *target_thd, enum_var_type type, std::string_view keycache_name)
Definition: sql_plugin_var.cc:349
 
const uchar * global_value_ptr(THD *thd, std::string_view keycache_name) override
Definition: sql_plugin_var.h:293
 
const char * orig_pluginvar_name
variable name from whatever is hard-coded in the plugin source and doesn't have pluginname- prefix is...
Definition: sql_plugin_var.h:225
 
void saved_value_to_string(THD *thd, set_var *var, char *def_val) override
This function converts value stored in save_result to string.
Definition: sql_plugin_var.cc:500
 
uchar * real_value_ptr(THD *thd, enum_var_type type)
Definition: sql_plugin_var.cc:322
 
sys_var_pluginvar * cast_pluginvar() override
downcast for sys_var_pluginvar.
Definition: sql_plugin_var.h:278
 
longlong get_min_value() override
Definition: sql_plugin_var.cc:424
 
static bool on_check_pluginvar(sys_var *self, THD *, set_var *var)
Enforce the NO DEFAULT policy for plugin system variables.
Definition: sql_plugin_var.cc:492
 
bool do_check(THD *thd, set_var *var) override
Definition: sql_plugin_var.cc:364
 
bool global_update(THD *thd, set_var *var) override
Definition: sql_plugin_var.cc:401
 
A class representing one system variable - that is something that can be accessed as @global....
Definition: set_var.h:107
 
LEX_CSTRING name
Definition: set_var.h:110
 
@ SESSION
Definition: set_var.h:130
 
@ GLOBAL
Definition: set_var.h:129
 
@ INVISIBLE
Definition: set_var.h:135
 
@ SENSITIVE
Sensitive variable.
Definition: set_var.h:153
 
@ READONLY
Definition: set_var.h:133
 
@ PERSIST_AS_READ_ONLY
There can be some variables which needs to be set before plugin is loaded.
Definition: set_var.h:148
 
@ VARIABLE_NOT_IN_BINLOG
Definition: set_var.h:162
 
struct get_opt_arg_source source
Definition: set_var.h:190
 
int flags
or'ed flag_enum values
Definition: set_var.h:175
 
static const int PARSE_NORMAL
Definition: set_var.h:156
 
static MEM_ROOT mem_root
Definition: client_plugin.cc:114
 
const char * p
Definition: ctype-mb.cc:1227
 
#define PLUGIN_VAR_OPCMDARG
Argument optional for cmd line.
Definition: system_variables_bits.h:72
 
#define PLUGIN_VAR_NOPERSIST
SET PERSIST_ONLY is prohibited for read only variables.
Definition: system_variables_bits.h:75
 
#define PLUGIN_VAR_THDLOCAL
Variable is per-connection.
Definition: system_variables_bits.h:66
 
#define PLUGIN_VAR_RQCMDARG
Argument required for cmd line.
Definition: system_variables_bits.h:71
 
#define PLUGIN_VAR_READONLY
Server variable is read only.
Definition: system_variables_bits.h:67
 
#define PLUGIN_VAR_NOCMDOPT
Not a command line option.
Definition: system_variables_bits.h:69
 
#define PLUGIN_VAR_SENSITIVE
Sensitive variable.
Definition: system_variables_bits.h:79
 
#define PLUGIN_VAR_NOCMDARG
No argument for cmd line.
Definition: system_variables_bits.h:70
 
#define PLUGIN_VAR_PERSIST_AS_READ_ONLY
Definition: system_variables_bits.h:77
 
#define PLUGIN_VAR_INVISIBLE
Variable should not be shown.
Definition: system_variables_bits.h:78
 
#define PLUGIN_VAR_NODEFAULT
SET DEFAULT is prohibited.
Definition: system_variables_bits.h:73
 
static int flags[50]
Definition: hp_test1.cc:40
 
#define comment
Definition: lexyy.cc:959
 
Various macros useful for communicating with memory debuggers, such as Valgrind.
 
void TRASH(void *ptr, size_t length)
Put bad content in memory to be sure it will segfault if dereferenced.
Definition: memory_debugging.h:71
 
Header for compiler-dependent features.
 
@ OPT_ARG
Definition: my_getopt.h:81
 
@ REQUIRED_ARG
Definition: my_getopt.h:81
 
@ NO_ARG
Definition: my_getopt.h:81
 
Some integer typedefs for easier portability.
 
unsigned long long int ulonglong
Definition: my_inttypes.h:56
 
unsigned char uchar
Definition: my_inttypes.h:52
 
intptr_t intptr
Definition: my_inttypes.h:70
 
long long int longlong
Definition: my_inttypes.h:55
 
#define MYF(v)
Definition: my_inttypes.h:97
 
void * my_malloc(PSI_memory_key key, size_t size, int flags)
Allocates size bytes of memory.
Definition: my_memory.cc:57
 
void my_free(void *ptr)
Frees the memory pointed by the ptr.
Definition: my_memory.cc:81
 
Common header for many mysys elements.
 
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1078
 
Definition: buf0block_hint.cc:30
 
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
size_t size(const char *const c)
Definition: base64.h:46
 
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
 
Performance schema instrumentation interface.
 
required string type
Definition: replication_group_member_actions.proto:34
 
"public" interface to sys_var - server configuration variables.
 
enum enum_mysql_show_type SHOW_TYPE
Definition: set_var.h:75
 
enum_var_type
Definition: set_var.h:92
 
@ OPT_GLOBAL
Definition: set_var.h:95
 
@ OPT_SESSION
Definition: set_var.h:94
 
int check_func_str(THD *thd, SYS_VAR *, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:672
 
uint global_variables_dynamic_size
Definition: sql_plugin.cc:465
 
typedef DECLARE_MYSQL_THDVAR_SIMPLE(thdvar_int_t, int)
 
typedef DECLARE_MYSQL_SYSVAR_BASIC(sysvar_bool_t, bool)
 
const char * item_val_str(st_mysql_value *value, char *buffer, int *length)
Definition: sql_plugin_var.cc:269
 
double * mysql_sys_var_double(THD *thd, int offset)
Definition: sql_plugin_var.cc:1077
 
MEM_ROOT plugin_mem_root
Definition: sql_plugin.cc:464
 
malloc_unordered_map< std::string, st_bookmark * > * get_bookmark_hash()
Definition: sql_plugin.cc:503
 
bool plugin_var_memalloc_session_update(THD *thd, SYS_VAR *var, char **dest, const char *value)
Set value for thread local variable with PLUGIN_VAR_MEMALLOC flag.
Definition: sql_plugin_var.cc:123
 
int check_func_bool(THD *, SYS_VAR *, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:586
 
void update_func_long(THD *, SYS_VAR *, void *tgt, const void *save)
Definition: sql_plugin_var.cc:767
 
malloc_unordered_map< std::string, st_bookmark * > * bookmark_hash
Definition: sql_plugin.cc:466
 
int * mysql_sys_var_int(THD *thd, int offset)
Definition: sql_plugin_var.cc:1057
 
void update_func_bool(THD *, SYS_VAR *, void *tgt, const void *save)
Definition: sql_plugin_var.cc:759
 
st_bookmark * find_bookmark(const char *plugin, const char *name, int flags)
Definition: sql_plugin_var.cc:788
 
int check_func_enum(THD *, SYS_VAR *var, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:684
 
typedef DECLARE_MYSQL_THDVAR_BASIC(thdvar_bool_t, bool)
 
void update_func_double(THD *, SYS_VAR *, void *tgt, const void *save)
Definition: sql_plugin_var.cc:779
 
int check_func_long(THD *thd, SYS_VAR *var, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:629
 
typedef DECLARE_MYSQL_THDVAR_TYPELIB(thdvar_enum_t, unsigned long)
 
SHOW_TYPE pluginvar_show_type(SYS_VAR *plugin_var)
Definition: sql_plugin_var.cc:158
 
void update_func_longlong(THD *, SYS_VAR *, void *tgt, const void *save)
Definition: sql_plugin_var.cc:771
 
const void * pluginvar_default_value(SYS_VAR *plugin_var)
Definition: sql_plugin_var.cc:187
 
malloc_unordered_map< std::string, st_bookmark * > * malloced_string_type_sysvars_bookmark_hash
Hash for system variables of string type with MEMALLOC flag.
Definition: sql_plugin.cc:469
 
int check_func_set(THD *, SYS_VAR *var, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:713
 
void update_func_int(THD *, SYS_VAR *, void *tgt, const void *save)
Definition: sql_plugin_var.cc:763
 
void update_func_str(THD *, SYS_VAR *, void *tgt, const void *save)
Definition: sql_plugin_var.cc:775
 
int check_func_longlong(THD *thd, SYS_VAR *var, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:650
 
unsigned int * mysql_sys_var_uint(THD *thd, int offset)
Definition: sql_plugin_var.cc:1061
 
int item_val_int(st_mysql_value *value, long long *buf)
Definition: sql_plugin_var.cc:283
 
st_bookmark * register_var(const char *plugin, const char *name, int flags)
Definition: sql_plugin_var.cc:939
 
uchar * intern_sys_var_ptr(THD *thd, int offset, bool global_lock)
Definition: sql_plugin_var.cc:232
 
int check_func_int(THD *thd, SYS_VAR *var, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:608
 
unsigned long long * mysql_sys_var_ulonglong(THD *thd, int offset)
Definition: sql_plugin_var.cc:1069
 
unsigned long * mysql_sys_var_ulong(THD *thd, int offset)
Definition: sql_plugin_var.cc:1065
 
int item_is_unsigned(st_mysql_value *value)
Definition: sql_plugin_var.cc:290
 
int check_func_double(THD *thd, SYS_VAR *var, void *save, st_mysql_value *value)
Definition: sql_plugin_var.cc:746
 
void convert_underscore_to_dash(char *str, size_t len)
Definition: sql_plugin_var.h:203
 
int item_val_real(st_mysql_value *value, double *buf)
Definition: sql_plugin_var.cc:295
 
int item_value_type(st_mysql_value *value)
Definition: sql_plugin_var.cc:258
 
char ** mysql_sys_var_str(THD *thd, int offset)
Definition: sql_plugin_var.cc:1073
 
void plugin_opt_set_limits(struct my_option *, const SYS_VAR *)
Definition: sql_plugin_var.cc:813
 
bool * mysql_sys_var_bool(THD *thd, int offset)
For correctness and simplicity's sake, a pointer to a function must be compatible with pointed-to typ...
Definition: sql_plugin_var.cc:1053
 
typedef DECLARE_MYSQL_SYSVAR_SIMPLE(sysvar_int_t, int)
 
typedef DECLARE_MYSQL_SYSVAR_TYPELIB(sysvar_enum_t, unsigned long)
 
bool plugin_var_memalloc_global_update(THD *thd, SYS_VAR *var, char **dest, const char *value)
Set value for global variable with PLUGIN_VAR_MEMALLOC flag.
Definition: sql_plugin_var.cc:69
 
case opt name
Definition: sslopt-case.h:29
 
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83
 
void * Alloc(size_t length)
Allocate memory.
Definition: my_alloc.h:145
 
Definition: system_variables_bits.h:153
 
Definition: my_getopt.h:83
 
char m_path_name[FN_REFLEN]
config file path OR compiled default values
Definition: my_getopt.h:87
 
enum enum_variable_source m_source
Definition: my_getopt.h:88
 
Definition: my_getopt.h:93
 
Definition: sql_plugin_var.h:172
 
int offset
Definition: sql_plugin_var.h:174
 
char key[1]
Definition: sql_plugin_var.h:176
 
uint version
Definition: sql_plugin_var.h:175
 
size_t name_len
Definition: sql_plugin_var.h:173
 
Definition: sql_plugin_var.h:319
 
Item * item
Definition: sql_plugin_var.h:320
 
Definition: system_variables_bits.h:96
 
Definition: sql_plugin_ref.h:45
 
Item_result
Type of the user defined function return slot and arguments.
Definition: udf_registration_types.h:39
 
#define PSI_NOT_INSTRUMENTED
Definition: validate_password_imp.cc:44