50#define plugin_ref_to_int(A) A
51#define plugin_int_to_ref(A) A
53#define plugin_ref_to_int(A) (A ? A[0] : NULL)
54#define plugin_int_to_ref(A) &(A)
60#define PLUGIN_INIT_SKIP_DYNAMIC_LOADING 1
61#define PLUGIN_INIT_SKIP_PLUGIN_TABLE 2
62#define PLUGIN_INIT_SKIP_INITIALIZATION 4
63#define PLUGIN_INIT_DELAY_UNTIL_AFTER_UPGRADE 8
65#define MYSQL_ANY_PLUGIN -1
74#define PLUGIN_IS_FREED 1
75#define PLUGIN_IS_DELETED 2
76#define PLUGIN_IS_UNINITIALIZED 4
77#define PLUGIN_IS_READY 8
78#define PLUGIN_IS_DYING 16
79#define PLUGIN_IS_DISABLED 32
80#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:810
This class implements the INSTALL PLUGIN statement.
Definition: sql_plugin.h:96
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:3681
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: sql_plugin.h:101
LEX_STRING m_ident
Definition: sql_plugin.h:118
LEX_CSTRING m_comment
Definition: sql_plugin.h:117
Sql_cmd_install_plugin(const LEX_CSTRING &comment, const LEX_STRING &ident)
Definition: sql_plugin.h:98
This class implements the UNINSTALL PLUGIN statement.
Definition: sql_plugin.h:125
Sql_cmd_uninstall_plugin(const LEX_CSTRING &comment)
Definition: sql_plugin.h:127
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: sql_plugin.h:130
LEX_CSTRING m_comment
Definition: sql_plugin.h:146
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:3688
Representation of an SQL command.
Definition: sql_cmd.h:64
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
Definition: sql_list.h:697
static MEM_ROOT mem_root
Definition: client_plugin.cc:109
static int flags[50]
Definition: hp_test1.cc:39
#define comment
Definition: lexyy.cc:959
Common #defines and includes for file and socket I/O.
#define FN_REFLEN
Definition: my_io.h:82
enum_sql_command
Definition: my_sqlcommand.h:45
@ SQLCOM_INSTALL_PLUGIN
Definition: my_sqlcommand.h:161
@ SQLCOM_UNINSTALL_PLUGIN
Definition: my_sqlcommand.h:162
static int count
Definition: myisam_ftdump.cc:42
ABI for instrumented mutexes.
static char * path
Definition: mysqldump.cc:133
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:42
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:75
Definition: options.cc:48
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2876
required string type
Definition: replication_group_member_actions.proto:33
Representation of an SQL command.
bool plugin_early_load_one(int *argc, char **argv, const char *plugin)
Initialize one plugin.
Definition: sql_plugin.cc:2230
void plugin_unlock(THD *thd, plugin_ref plugin)
Definition: sql_plugin.cc:1254
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:2908
void plugin_thdvar_init(THD *thd, bool enable_plugins)
Definition: sql_plugin.cc:3014
char * opt_plugin_dir_ptr
Definition: sql_plugin.cc:340
void plugin_thdvar_cleanup(THD *thd, bool enable_plugins)
Definition: sql_plugin.cc:3087
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:975
int(* plugin_type_init)(struct st_plugin_int *)
Definition: sql_plugin.h:149
mysql_mutex_t LOCK_plugin
Serializes access to the global plugin memory list.
Definition: sql_plugin.cc:448
const LEX_CSTRING plugin_type_names[]
Definition: sql_plugin.cc:346
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:569
const char * global_plugin_typelib_names[]
Definition: sql_plugin.cc:330
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:1268
void add_plugin_options(std::vector< my_option > *options, MEM_ROOT *mem_root)
Definition: sql_plugin.cc:3649
char opt_plugin_dir[FN_REFLEN]
Definition: sql_plugin.cc:341
I_List< i_string > * opt_early_plugin_load_list_ptr
Definition: sql_plugin.cc:339
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:3149
void memcached_shutdown(void)
Definition: sql_plugin.cc:2039
bool end_transaction(THD *thd, bool error)
Definition: sql_plugin.cc:2203
plugin_ref plugin_lock_by_name(THD *thd, const LEX_CSTRING &name, int type)
Definition: sql_plugin.cc:985
bool plugin_is_ready(const LEX_CSTRING &name, int type)
Definition: sql_plugin.cc:925
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:437
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:337
void plugin_shutdown(void)
Definition: sql_plugin.cc:2068
bool plugin_foreach_with_mask(THD *thd, plugin_foreach_func *func, int type, uint state_mask, void *arg)
Definition: sql_plugin.cc:2769
case opt name
Definition: sslopt-case.h:32
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:82
Definition: mysql_lex_string.h:39
Definition: mysql_lex_string.h:34
Definition: my_getopt.h:92
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49
Definition: sql_plugin.h:84
LEX_STRING dl
Definition: sql_plugin.h:85
void * handle
Definition: sql_plugin.h:86
int version
Definition: sql_plugin.h:88
struct st_mysql_plugin * plugins
Definition: sql_plugin.h:87
uint ref_count
Definition: sql_plugin.h:89
Definition: sql_plugin_ref.h:44
unsigned int uint
Definition: uca9-dump.cc:74