51#define plugin_ref_to_int(A) A
52#define plugin_int_to_ref(A) A
54#define plugin_ref_to_int(A) (A ? A[0] : NULL)
55#define plugin_int_to_ref(A) &(A)
61#define PLUGIN_INIT_SKIP_DYNAMIC_LOADING 1
62#define PLUGIN_INIT_SKIP_PLUGIN_TABLE 2
63#define PLUGIN_INIT_SKIP_INITIALIZATION 4
64#define PLUGIN_INIT_DELAY_UNTIL_AFTER_UPGRADE 8
66#define MYSQL_ANY_PLUGIN -1
75#define PLUGIN_IS_FREED 1
76#define PLUGIN_IS_DELETED 2
77#define PLUGIN_IS_UNINITIALIZED 4
78#define PLUGIN_IS_READY 8
79#define PLUGIN_IS_DYING 16
80#define PLUGIN_IS_DISABLED 32
81#define PLUGIN_IS_WAITING_FOR_UPGRADE 64
174#define my_plugin_lock_by_name(A, B, C) plugin_lock_by_name(A, B, C)
175#define my_plugin_lock_by_name_ci(A, B, C) plugin_lock_by_name(A, B, C)
176#define my_plugin_lock(A, B) plugin_lock(A, B)
177#define my_plugin_lock_ci(A, B) plugin_lock(A, B)
191#define plugin_foreach(A, B, C, D) \
192 plugin_foreach_with_mask(A, B, C, PLUGIN_IS_READY, D)
194 int type, uint state_mask,
void *arg);
196 int type, uint state_mask,
void *arg);
Definition: sql_list.h:844
This class implements the INSTALL PLUGIN statement.
Definition: sql_plugin.h:97
bool execute(THD *thd) override
Install a new plugin by inserting a row into the mysql.plugin table, creating a cache entry and initi...
Definition: sql_plugin.cc:3674
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: sql_plugin.h:102
LEX_STRING m_ident
Definition: sql_plugin.h:119
LEX_CSTRING m_comment
Definition: sql_plugin.h:118
Sql_cmd_install_plugin(const LEX_CSTRING &comment, const LEX_STRING &ident)
Definition: sql_plugin.h:99
This class implements the UNINSTALL PLUGIN statement.
Definition: sql_plugin.h:126
Sql_cmd_uninstall_plugin(const LEX_CSTRING &comment)
Definition: sql_plugin.h:128
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: sql_plugin.h:131
LEX_CSTRING m_comment
Definition: sql_plugin.h:147
bool execute(THD *thd) override
Uninstall a plugin by removing a row from the mysql.plugin table, deleting a cache entry and deinitia...
Definition: sql_plugin.cc:3681
Representation of an SQL command.
Definition: sql_cmd.h:83
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Definition: sql_list.h:731
static MEM_ROOT mem_root
Definition: client_plugin.cc:114
static int flags[50]
Definition: hp_test1.cc:40
#define comment
Definition: lexyy.cc:959
Common #defines and includes for file and socket I/O.
#define FN_REFLEN
Definition: my_io.h:83
enum_sql_command
Definition: my_sqlcommand.h:46
@ SQLCOM_INSTALL_PLUGIN
Definition: my_sqlcommand.h:162
@ SQLCOM_UNINSTALL_PLUGIN
Definition: my_sqlcommand.h:163
static int count
Definition: myisam_ftdump.cc:45
ABI for instrumented mutexes.
void error(const char *format,...)
static char * path
Definition: mysqldump.cc:149
bool plugin_initialize_delayed_after_upgrade()
Initialize delayed plugins.
Definition: sql_plugin.cc:1710
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
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
Definition: options.cc:57
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2879
required string type
Definition: replication_group_member_actions.proto:34
Representation of an SQL command.
bool plugin_early_load_one(int *argc, char **argv, const char *plugin)
Initialize one plugin.
Definition: sql_plugin.cc:2215
void plugin_unlock(THD *thd, plugin_ref plugin)
Definition: sql_plugin.cc:1263
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 variable...
Definition: sql_plugin.cc:2902
void plugin_thdvar_init(THD *thd, bool enable_plugins)
Definition: sql_plugin.cc:3008
char * opt_plugin_dir_ptr
Definition: sql_plugin.cc:344
void plugin_thdvar_cleanup(THD *thd, bool enable_plugins)
Definition: sql_plugin.cc:3081
bool is_builtin_and_core_se_initialized()
Definition: sql_plugin.cc:1689
plugin_ref plugin_lock(THD *thd, plugin_ref *ptr)
Definition: sql_plugin.cc:984
int(* plugin_type_init)(struct st_plugin_int *)
Definition: sql_plugin.h:150
mysql_mutex_t LOCK_plugin
Serializes access to the global plugin memory list.
Definition: sql_plugin.cc:450
const LEX_CSTRING plugin_type_names[]
Definition: sql_plugin.cc:350
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 ...
Definition: sql_plugin.cc:571
const char * global_plugin_typelib_names[]
Definition: sql_plugin.cc:334
bool plugin_register_dynamic_and_init_all(int *argc, char **argv, int init_flags)
Register and initialize the dynamic plugins.
Definition: sql_plugin.cc:1779
bool plugin_register_builtin_and_init_core_se(int *argc, char **argv)
Register the builtin plugins.
Definition: sql_plugin.cc:1556
bool() plugin_foreach_func(THD *thd, plugin_ref plugin, void *arg)
Definition: sql_plugin.h:190
void plugin_unlock_list(THD *thd, plugin_ref *list, size_t count)
Definition: sql_plugin.cc:1277
void add_plugin_options(std::vector< my_option > *options, MEM_ROOT *mem_root)
Definition: sql_plugin.cc:3642
char opt_plugin_dir[FN_REFLEN]
Definition: sql_plugin.cc:345
I_List< i_string > * opt_early_plugin_load_list_ptr
Definition: sql_plugin.cc:343
void plugin_thdvar_safe_update(THD *thd, SYS_VAR *var, char **dest, const char *value)
Set value for a thread local variable.
Definition: sql_plugin.cc:3144
bool end_transaction(THD *thd, bool error)
Definition: sql_plugin.cc:2188
plugin_ref plugin_lock_by_name(THD *thd, const LEX_CSTRING &name, int type)
Definition: sql_plugin.cc:994
bool plugin_is_ready(const LEX_CSTRING &name, int type)
Definition: sql_plugin.cc:934
bool plugin_register_early_plugins(int *argc, char **argv, int flags)
Register and initialize early plugins.
Definition: sql_plugin.cc:1501
mysql_mutex_t LOCK_plugin_delete
Definition: sql_plugin.cc:439
bool update_persisted_plugin_sysvars(const char *name)
Update read-write persisted plugin system variables.
Definition: sql_plugin.cc:1534
I_List< i_string > * opt_plugin_load_list_ptr
Definition: sql_plugin.cc:341
void plugin_shutdown(void)
Definition: sql_plugin.cc:2042
bool plugin_foreach_with_mask(THD *thd, plugin_foreach_func *func, int type, uint state_mask, void *arg)
Definition: sql_plugin.cc:2762
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
Definition: mysql_lex_string.h:40
Definition: mysql_lex_string.h:35
Definition: my_getopt.h:93
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50
Definition: sql_plugin.h:85
LEX_STRING dl
Definition: sql_plugin.h:86
void * handle
Definition: sql_plugin.h:87
int version
Definition: sql_plugin.h:89
struct st_mysql_plugin * plugins
Definition: sql_plugin.h:88
uint ref_count
Definition: sql_plugin.h:90
Definition: sql_plugin_ref.h:45