![]() |
MySQL 8.0.40
Source Code Documentation
|
#include "sql/sql_plugin_var.h"
#include <limits.h>
#include <string>
#include <unordered_map>
#include <utility>
#include "m_ctype.h"
#include "m_string.h"
#include "map_helpers.h"
#include "my_dbug.h"
#include "my_list.h"
#include "mysql/psi/mysql_mutex.h"
#include "mysql/status_var.h"
#include "sql/current_thd.h"
#include "sql/item.h"
#include "sql/mysqld.h"
#include "sql/psi_memory_key.h"
#include "sql/set_var.h"
#include "sql/sql_class.h"
#include "sql/sql_const.h"
#include "sql/sql_plugin.h"
#include "sql/strfunc.h"
#include "sql/sys_vars_shared.h"
#include "sql/system_variables.h"
#include "sql_string.h"
#include "template_utils.h"
#include "typelib.h"
Functions | |
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) |
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) |
int check_func_bool | ( | THD * | , |
SYS_VAR * | , | ||
void * | save, | ||
st_mysql_value * | value | ||
) |
int check_func_double | ( | THD * | thd, |
SYS_VAR * | var, | ||
void * | save, | ||
st_mysql_value * | value | ||
) |
int check_func_enum | ( | THD * | , |
SYS_VAR * | 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_set | ( | THD * | , |
SYS_VAR * | var, | ||
void * | save, | ||
st_mysql_value * | value | ||
) |
int check_func_str | ( | THD * | thd, |
SYS_VAR * | , | ||
void * | save, | ||
st_mysql_value * | value | ||
) |
st_bookmark * find_bookmark | ( | const char * | plugin, |
const char * | name, | ||
int | flags | ||
) |
int item_is_unsigned | ( | st_mysql_value * | value | ) |
int item_val_int | ( | st_mysql_value * | value, |
long long * | buf | ||
) |
int item_val_real | ( | st_mysql_value * | value, |
double * | buf | ||
) |
const char * item_val_str | ( | st_mysql_value * | value, |
char * | buffer, | ||
int * | length | ||
) |
int item_value_type | ( | st_mysql_value * | value | ) |
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.
[in] | thd | Thread context. |
[in] | var | Plugin variable. |
[in,out] | dest | Destination memory pointer. |
[in] | value | '\0'-terminated new value. |
false | Success |
true | Failure |
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.
[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.
false | Success |
true | Failure |