![]() |
MySQL 8.0.43
Source Code Documentation
|
#include <stddef.h>#include <sys/types.h>#include <vector>#include "lex_string.h"#include "my_io.h"#include "my_sqlcommand.h"#include "mysql/components/services/bits/mysql_mutex_bits.h"#include "sql/sql_cmd.h"#include "sql/sql_plugin_ref.h"Go to the source code of this file.
Classes | |
| struct | st_plugin_dl |
| class | Sql_cmd_install_plugin |
| This class implements the INSTALL PLUGIN statement. More... | |
| class | Sql_cmd_uninstall_plugin |
| This class implements the UNINSTALL PLUGIN statement. More... | |
Namespaces | |
| namespace | dd |
| The version of the current data dictionary table definitions. | |
| namespace | dd::upgrade |
Macros | |
| #define | plugin_ref_to_int(A) (A ? A[0] : NULL) |
| #define | plugin_int_to_ref(A) &(A) |
| #define | PLUGIN_INIT_SKIP_DYNAMIC_LOADING 1 |
| #define | PLUGIN_INIT_SKIP_PLUGIN_TABLE 2 |
| #define | PLUGIN_INIT_SKIP_INITIALIZATION 4 |
| #define | PLUGIN_INIT_DELAY_UNTIL_AFTER_UPGRADE 8 |
| #define | MYSQL_ANY_PLUGIN -1 |
| #define | PLUGIN_IS_FREED 1 |
| #define | PLUGIN_IS_DELETED 2 |
| #define | PLUGIN_IS_UNINITIALIZED 4 |
| #define | PLUGIN_IS_READY 8 |
| #define | PLUGIN_IS_DYING 16 |
| #define | PLUGIN_IS_DISABLED 32 |
| #define | PLUGIN_IS_WAITING_FOR_UPGRADE 64 |
| #define | my_plugin_lock_by_name(A, B, C) plugin_lock_by_name(A, B, C) |
| #define | my_plugin_lock_by_name_ci(A, B, C) plugin_lock_by_name(A, B, C) |
| #define | my_plugin_lock(A, B) plugin_lock(A, B) |
| #define | my_plugin_lock_ci(A, B) plugin_lock(A, B) |
| #define | plugin_foreach(A, B, C, D) plugin_foreach_with_mask(A, B, C, PLUGIN_IS_READY, D) |
Typedefs | |
| typedef int(* | plugin_type_init) (struct st_plugin_int *) |
| typedef bool() | plugin_foreach_func(THD *thd, plugin_ref plugin, void *arg) |
Functions | |
| bool | plugin_register_early_plugins (int *argc, char **argv, int flags) |
| Register and initialize early plugins. More... | |
| bool | plugin_register_builtin_and_init_core_se (int *argc, char **argv) |
| Register the builtin plugins. More... | |
| bool | plugin_register_dynamic_and_init_all (int *argc, char **argv, int init_flags) |
| Register and initialize the dynamic plugins. More... | |
| bool | update_persisted_plugin_sysvars (const char *name) |
| Update read-write persisted plugin system variables. More... | |
| bool | dd::upgrade::plugin_initialize_delayed_after_upgrade () |
| Initialize delayed plugins. More... | |
| bool | is_builtin_and_core_se_initialized () |
| void | plugin_shutdown (void) |
| void | memcached_shutdown (void) |
| void | add_plugin_options (std::vector< my_option > *options, MEM_ROOT *mem_root) |
| bool | plugin_is_ready (const LEX_CSTRING &name, int type) |
| plugin_ref | plugin_lock (THD *thd, plugin_ref *ptr) |
| plugin_ref | plugin_lock_by_name (THD *thd, const LEX_CSTRING &name, int type) |
| void | plugin_unlock (THD *thd, plugin_ref plugin) |
| void | plugin_unlock_list (THD *thd, plugin_ref *list, size_t count) |
| void | plugin_thdvar_init (THD *thd, bool enable_plugins) |
| void | plugin_thdvar_cleanup (THD *thd, bool enable_plugins) |
| void | plugin_thdvar_safe_update (THD *thd, SYS_VAR *var, char **dest, const char *value) |
| Set value for a thread local variable. More... | |
| bool | check_valid_path (const char *path, size_t length) |
| Check if the provided path is valid in the sense that it does cause a relative reference outside the directory. More... | |
| void | alloc_and_copy_thd_dynamic_variables (THD *thd, bool global_lock) |
| Allocate memory and copy dynamic variables from global system variables to per-thread system variables copy. More... | |
| bool | plugin_foreach_with_mask (THD *thd, plugin_foreach_func *func, int type, uint state_mask, void *arg) |
| bool | plugin_foreach_with_mask (THD *thd, plugin_foreach_func **funcs, int type, uint state_mask, void *arg) |
| bool | end_transaction (THD *thd, bool error) |
| bool | plugin_early_load_one (int *argc, char **argv, const char *plugin) |
| Initialize one plugin. More... | |
Variables | |
| const char * | global_plugin_typelib_names [] |
| mysql_mutex_t | LOCK_plugin |
| Serializes access to the global plugin memory list. More... | |
| mysql_mutex_t | LOCK_plugin_delete |
| I_List< i_string > * | opt_plugin_load_list_ptr |
| I_List< i_string > * | opt_early_plugin_load_list_ptr |
| char * | opt_plugin_dir_ptr |
| char | opt_plugin_dir [FN_REFLEN] |
| const LEX_CSTRING | plugin_type_names [] |
| #define my_plugin_lock | ( | A, | |
| B | |||
| ) | plugin_lock(A, B) |
| #define my_plugin_lock_by_name | ( | A, | |
| B, | |||
| C | |||
| ) | plugin_lock_by_name(A, B, C) |
| #define my_plugin_lock_by_name_ci | ( | A, | |
| B, | |||
| C | |||
| ) | plugin_lock_by_name(A, B, C) |
| #define my_plugin_lock_ci | ( | A, | |
| B | |||
| ) | plugin_lock(A, B) |
| #define MYSQL_ANY_PLUGIN -1 |
| #define plugin_foreach | ( | A, | |
| B, | |||
| C, | |||
| D | |||
| ) | plugin_foreach_with_mask(A, B, C, PLUGIN_IS_READY, D) |
| #define PLUGIN_INIT_DELAY_UNTIL_AFTER_UPGRADE 8 |
| #define PLUGIN_INIT_SKIP_DYNAMIC_LOADING 1 |
| #define PLUGIN_INIT_SKIP_INITIALIZATION 4 |
| #define PLUGIN_INIT_SKIP_PLUGIN_TABLE 2 |
| #define plugin_int_to_ref | ( | A | ) | &(A) |
| #define PLUGIN_IS_DELETED 2 |
| #define PLUGIN_IS_DISABLED 32 |
| #define PLUGIN_IS_DYING 16 |
| #define PLUGIN_IS_FREED 1 |
| #define PLUGIN_IS_READY 8 |
| #define PLUGIN_IS_UNINITIALIZED 4 |
| #define PLUGIN_IS_WAITING_FOR_UPGRADE 64 |
| #define plugin_ref_to_int | ( | A | ) | (A ? A[0] : NULL) |
| typedef bool() plugin_foreach_func(THD *thd, plugin_ref plugin, void *arg) |
| typedef int(* plugin_type_init) (struct st_plugin_int *) |
| void alloc_and_copy_thd_dynamic_variables | ( | THD * | thd, |
| bool | global_lock | ||
| ) |
Allocate memory and copy dynamic variables from global system variables to per-thread system variables copy.
| thd | thread context |
| global_lock | If true LOCK_global_system_variables should be acquired while copying variables from global variables copy. |
| bool check_valid_path | ( | const char * | path, |
| size_t | len | ||
| ) |
Check if the provided path is valid in the sense that it does cause a relative reference outside the directory.
| bool end_transaction | ( | THD * | thd, |
| bool | error | ||
| ) |
| bool is_builtin_and_core_se_initialized | ( | ) |
| void memcached_shutdown | ( | void | ) |
| bool plugin_early_load_one | ( | int * | argc, |
| char ** | argv, | ||
| const char * | plugin | ||
| ) |
Initialize one plugin.
This function is used to early load one single plugin. This function is used by key migration tool.
| [in] | argc | Command line argument counter |
| [in] | argv | Command line arguments |
| [in] | plugin | library file name |
| 0 | OK |
| 1 | ERROR |
| bool plugin_foreach_with_mask | ( | THD * | thd, |
| plugin_foreach_func ** | funcs, | ||
| int | type, | ||
| uint | state_mask, | ||
| void * | arg | ||
| ) |
| bool plugin_foreach_with_mask | ( | THD * | thd, |
| plugin_foreach_func * | func, | ||
| int | type, | ||
| uint | state_mask, | ||
| void * | arg | ||
| ) |
| bool plugin_is_ready | ( | const LEX_CSTRING & | name, |
| int | type | ||
| ) |
| plugin_ref plugin_lock | ( | THD * | thd, |
| plugin_ref * | ptr | ||
| ) |
| plugin_ref plugin_lock_by_name | ( | THD * | thd, |
| const LEX_CSTRING & | name, | ||
| int | type | ||
| ) |
| bool plugin_register_builtin_and_init_core_se | ( | int * | argc, |
| char ** | argv | ||
| ) |
Register the builtin plugins.
Some of the plugins (MyISAM, CSV and InnoDB) are also initialized.
| argc | number of arguments, propagated to the plugin |
| argv | actual arguments, propagated to the plugin |
| bool plugin_register_dynamic_and_init_all | ( | int * | argc, |
| char ** | argv, | ||
| int | flags | ||
| ) |
Register and initialize the dynamic plugins.
Also initialize the remaining builtin plugins that are not initialized already.
| argc | Command line argument counter |
| argv | Command line arguments |
| flags | Flags to control whether dynamic loading and plugin initialization should be skipped |
| bool plugin_register_early_plugins | ( | int * | argc, |
| char ** | argv, | ||
| int | flags | ||
| ) |
Register and initialize early plugins.
| argc | Command line argument counter |
| argv | Command line arguments |
| flags | Flags to control whether dynamic loading and plugin initialization should be skipped |
| void plugin_shutdown | ( | void | ) |
| void plugin_thdvar_cleanup | ( | THD * | thd, |
| bool | enable_plugins | ||
| ) |
| void plugin_thdvar_init | ( | THD * | thd, |
| bool | enable_plugins | ||
| ) |
Set value for a thread local variable.
| [in] | thd | Thread context. |
| [in] | var | Plugin variable. |
| [in,out] | dest | Destination memory pointer. |
| [in] | value | New value. |
Note: new value should be '\0'-terminated for string variables.
Used in plugin.h:THDVAR_SET(thd, name, value) macro.
| void plugin_unlock | ( | THD * | thd, |
| plugin_ref | plugin | ||
| ) |
| void plugin_unlock_list | ( | THD * | thd, |
| plugin_ref * | list, | ||
| size_t | count | ||
| ) |
| bool update_persisted_plugin_sysvars | ( | const char * | name | ) |
Update read-write persisted plugin system variables.
| name | plugin name |
|
extern |
|
extern |
Serializes access to the global plugin memory list.
LOCK_plugin must be acquired before accessing plugin_dl_array, plugin_array and plugin_hash. We are always manipulating ref count, so a rwlock here is unnecessary. If it must be taken together with the LOCK_system_variables_hash then LOCK_plugin must be taken after LOCK_system_variables_hash.
|
extern |
|
extern |
|
extern |
|
extern |