32#ifndef srv0dynamic_procedures_h
33#define srv0dynamic_procedures_h
112 const char *
name = procedure.m_name.c_str();
113 if (registrar->udf_register(
name, procedure.m_return_type,
114 procedure.m_func, procedure.m_init_func,
115 procedure.m_deinit_func)) {
119 ": Cannot register dynamic SQL procedure '" +
147 const char *
name = procedure.m_name.c_str();
149 if (registrar->udf_unregister(
name, &was_present) && was_present) {
153 ": Cannot unregister dynamic SQL procedure '" +
171 if (plugin_registry ==
nullptr) {
179 return plugin_registry;
Wraps my_h_service struct conforming ABI into RAII C++ object with ability to cast to desired service...
Definition: my_service.h:34
bool is_valid() const
Definition: my_service.h:103
Definition: srv0dynamic_procedures.h:89
const mysql_service_registry_t * get_mysql_registry()
Definition: srv0dynamic_procedures.h:169
virtual std::string get_module_name() const =0
virtual ~Dynamic_procedures()=default
void unregister()
Unregister dynamic SQL procedure.
Definition: srv0dynamic_procedures.h:137
my_service< const mysql_service_udf_registration_t > get_procedure_registar(const mysql_service_registry_t *plugin_registry)
Definition: srv0dynamic_procedures.h:182
bool register_procedures()
Register dynamic SQL procedure.
Definition: srv0dynamic_procedures.h:98
virtual std::vector< dynamic_procedure_data_t > get_procedures() const =0
#define LogErr(severity, ecode,...)
Definition: log_builtins.h:842
@ WARNING_LEVEL
Definition: my_loglevel.h:43
@ ERROR_LEVEL
Definition: my_loglevel.h:42
Definition: srv0dynamic_procedures.h:47
#define SERVICE_TYPE(name)
Generates the standard Service type name.
Definition: service.h:75
Declaration of the registry plugin service.
const mysql_service_registry_t * mysql_plugin_registry_acquire()
Returns a new reference to the "registry" service.
Definition: plugin_registry_service.cc:46
int mysql_plugin_registry_release(const mysql_service_registry_t *)
Releases a registry service reference.
Definition: plugin_registry_service.cc:74
case opt name
Definition: sslopt-case.h:32
Type and data for tracking registered UDFs.
Definition: srv0dynamic_procedures.h:52
const Udf_func_init m_init_func
Definition: srv0dynamic_procedures.h:56
const Item_result m_return_type
Definition: srv0dynamic_procedures.h:54
const Udf_func_deinit m_deinit_func
Definition: srv0dynamic_procedures.h:57
const Udf_func_any m_func
Definition: srv0dynamic_procedures.h:55
dynamic_procedure_data_t(const std::string &name, const Udf_func_double func, const Udf_func_init init_func, const Udf_func_deinit deinit_func)
Definition: srv0dynamic_procedures.h:79
const std::string m_name
Definition: srv0dynamic_procedures.h:53
dynamic_procedure_data_t(const std::string &name, const Udf_func_longlong func, const Udf_func_init init_func, const Udf_func_deinit deinit_func)
Definition: srv0dynamic_procedures.h:69
dynamic_procedure_data_t(const std::string &name, const Udf_func_string func, const Udf_func_init init_func, const Udf_func_deinit deinit_func, const Item_result return_type=STRING_RESULT)
Definition: srv0dynamic_procedures.h:59
long long(* Udf_func_longlong)(UDF_INIT *, UDF_ARGS *, unsigned char *, unsigned char *)
Definition: udf_registration_types.h:84
char *(* Udf_func_string)(UDF_INIT *, UDF_ARGS *, char *, unsigned long *, unsigned char *, unsigned char *)
Definition: udf_registration_types.h:86
void(* Udf_func_deinit)(UDF_INIT *)
Definition: udf_registration_types.h:79
double(* Udf_func_double)(UDF_INIT *, UDF_ARGS *, unsigned char *, unsigned char *)
Definition: udf_registration_types.h:82
Item_result
Type of the user defined function return slot and arguments.
Definition: udf_registration_types.h:38
@ STRING_RESULT
not valid for UDFs
Definition: udf_registration_types.h:40
@ REAL_RESULT
char *
Definition: udf_registration_types.h:41
@ INT_RESULT
double
Definition: udf_registration_types.h:42
bool(* Udf_func_init)(UDF_INIT *, UDF_ARGS *, char *)
Definition: udf_registration_types.h:80
void(* Udf_func_any)(void)
Definition: udf_registration_types.h:81
Version control for database, common definitions, and include files.