|
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. More...
|
|
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. More...
|
|
SHOW_TYPE | pluginvar_show_type (SYS_VAR *plugin_var) |
|
const void * | pluginvar_default_value (SYS_VAR *plugin_var) |
|
uchar * | intern_sys_var_ptr (THD *thd, int offset, bool global_lock) |
|
int | item_value_type (st_mysql_value *value) |
|
const char * | item_val_str (st_mysql_value *value, char *buffer, int *length) |
|
int | item_val_int (st_mysql_value *value, long long *buf) |
|
int | item_is_unsigned (st_mysql_value *value) |
|
int | item_val_real (st_mysql_value *value, double *buf) |
|
int | check_func_bool (THD *, SYS_VAR *, void *save, st_mysql_value *value) |
|
int | check_func_int (THD *thd, SYS_VAR *var, void *save, st_mysql_value *value) |
|
int | check_func_long (THD *thd, SYS_VAR *var, void *save, st_mysql_value *value) |
|
int | check_func_longlong (THD *thd, SYS_VAR *var, void *save, st_mysql_value *value) |
|
int | check_func_str (THD *thd, SYS_VAR *, void *save, st_mysql_value *value) |
|
int | check_func_enum (THD *, SYS_VAR *var, void *save, st_mysql_value *value) |
|
int | check_func_set (THD *, SYS_VAR *var, void *save, st_mysql_value *value) |
|
int | check_func_double (THD *thd, SYS_VAR *var, void *save, st_mysql_value *value) |
|
void | update_func_bool (THD *, SYS_VAR *, void *tgt, const void *save) |
|
void | update_func_int (THD *, SYS_VAR *, void *tgt, const void *save) |
|
void | update_func_long (THD *, SYS_VAR *, void *tgt, const void *save) |
|
void | update_func_longlong (THD *, SYS_VAR *, void *tgt, const void *save) |
|
void | update_func_str (THD *, SYS_VAR *, void *tgt, const void *save) |
|
void | update_func_double (THD *, SYS_VAR *, void *tgt, const void *save) |
|
st_bookmark * | find_bookmark (const char *plugin, const char *name, int flags) |
|
void | plugin_opt_set_limits (struct my_option *options, const SYS_VAR *opt) |
|
st_bookmark * | register_var (const char *plugin, const char *name, int flags) |
|
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 type, that is, the return and parameters types must be the same. More...
|
|
int * | mysql_sys_var_int (THD *thd, int offset) |
|
unsigned int * | mysql_sys_var_uint (THD *thd, int offset) |
|
unsigned long * | mysql_sys_var_ulong (THD *thd, int offset) |
|
unsigned long long * | mysql_sys_var_ulonglong (THD *thd, int offset) |
|
char ** | mysql_sys_var_str (THD *thd, int offset) |
|
double * | mysql_sys_var_double (THD *thd, int offset) |
|
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 type, that is, the return and parameters types must be the same.
Thus, a callback function is defined for each scalar type. The functions are assigned in construct_options to their respective types.
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.
- Parameters
-
[in] | thd | Thread context. |
[in] | var | Plugin variable. |
[in,out] | dest | Destination memory pointer. |
[in] | value | '\0'-terminated new value. |
Most plugin variable values are stored on dynamic_variables_ptr. Releasing memory occupied by these values is as simple as freeing dynamic_variables_ptr.
An exception to the rule are PLUGIN_VAR_MEMALLOC variables, which are stored on individual memory hunks. All of these hunks has to be freed when it comes to cleanup.
It may happen that a plugin was uninstalled and descriptors of it's variables are lost. In this case it is impossible to locate corresponding values.
In addition to allocating and setting variable value, new element is added to dynamic_variables_allocs list. When thread is done, it has to call plugin_var_memalloc_free() to release memory used by PLUGIN_VAR_MEMALLOC variables.
If var is NULL, variable update function is not called. This is needed when we take snapshot of system variables during thread initialization.
- Note
- List element and variable value are stored on the same memory hunk. List element is followed by variable value.
- Returns
- Completion status
- Return values
-