26#ifndef MRS_COMPONENT_H
27#define MRS_COMPONENT_H
59#include <mysqld_error.h>
110 stmt_get_unsigned_integer);
116 stmt_resultset_metadata);
124 thread_security_ctx);
126 security_ctx_factory);
128 mysql_account_database_security_context_lookup, security_ctx_lookup);
130 thread_security_ctx_opts);
134 dynamic_privilege_registry);
136 global_grants_checker);
141 string_get_data_in_charset);
147 table_access_factory);
150 field_varchar_access);
153 field_access_nullability);
163 debug_keyword_service);
199 [[nodiscard]]
const char *
name()
const {
return m_name.c_str(); }
233 const std::string
m_name{
"MySQL Rest Service Component"};
Owns and controls the embedded MRS backend lifecycle.
Definition: mrs_component_backend.h:111
Emits MRS messages through the MySQL Server logging services.
Definition: mrs_component_log.h:36
Coordinates registration and lifecycle of the MySQL REST Service component.
Definition: mrs_component.h:189
bool m_udfs_registered
Definition: mrs_component.h:239
mysql_service_status_t component_deinit()
Deinitialize the Main handler class.
Definition: mrs_component.cc:428
int backend_init()
Definition: mrs_component.cc:335
ServerConfig m_server_config
Definition: mrs_component.h:241
const std::string m_name
Definition: mrs_component.h:233
const Log & log() const
Definition: mrs_component.h:230
int admin_privilege_unregister()
Definition: mrs_component.cc:284
MRSComponent(const MRSComponent &)=delete
int system_vars_unregister()
Unregister all system variables.
Definition: mrs_component.cc:221
StatusVars & status_vars()
Definition: mrs_component.h:227
StatusVars m_status_vars
Definition: mrs_component.h:243
MRSComponent & operator=(const MRSComponent &)=delete
Backend & backend()
Definition: mrs_component.h:229
Backend m_backend
Definition: mrs_component.h:246
int udfs_register()
Register all UDFs.
Definition: mrs_component.cc:309
int udfs_init()
Initialize all UDFs.
Definition: mrs_component.cc:301
int admin_privilege_register()
Definition: mrs_component.cc:266
bool m_status_vars_registered
Definition: mrs_component.h:237
int status_vars_register()
Register all status variables.
Definition: mrs_component.cc:240
int backend_stop()
Definition: mrs_component.cc:358
int udfs_unregister()
Unregister all UDFs.
Definition: mrs_component.cc:327
int status_vars_init()
Initialize all status variables.
Definition: mrs_component.cc:232
const char * name() const
Definition: mrs_component.h:199
SystemVars m_system_vars
Definition: mrs_component.h:242
bool initialized() const
Definition: mrs_component.h:222
UDFs m_udfs
Definition: mrs_component.h:244
MRSComponent & operator=(MRSComponent &&)=delete
int system_vars_init()
Initialize all system variables.
Definition: mrs_component.cc:195
int backend_start()
Definition: mrs_component.cc:344
Log m_log
Definition: mrs_component.h:245
int backend_restart()
Definition: mrs_component.cc:352
ServerConfig & server_config()
Definition: mrs_component.h:225
MRSComponent(MRSComponent &&)=delete
bool m_admin_privilege_registered
Definition: mrs_component.h:238
UDFs & udfs()
Definition: mrs_component.h:228
int status_vars_unregister()
Unregister all status variables.
Definition: mrs_component.cc:258
std::atomic< bool > m_initialized
Definition: mrs_component.h:235
mysql_service_status_t component_init()
Initialize the Main handler class.
Definition: mrs_component.cc:367
SystemVars & system_vars()
Definition: mrs_component.h:226
void set_initialized(bool initialized)
Definition: mrs_component.h:223
int system_vars_register()
Register all system variables.
Definition: mrs_component.cc:203
int server_config_init()
Read all needed Server system variables.
Definition: mrs_component.cc:187
bool m_system_vars_registered
Definition: mrs_component.h:236
Holds the Server configuration required by the MRS component.
Definition: mrs_component_server_config.h:36
Owns and manages status variables exposed by the MRS component.
Definition: mrs_component_status_vars.h:49
Owns and manages system variables exposed by the MRS component.
Definition: mrs_component_system_vars.h:68
Owns and manages the UDFs provided by the MRS component.
Definition: mrs_component_udfs.h:56
Specifies macros to define Components.
const mysql_service_log_builtins_string_t * log_bs
Definition: connection_control.cc:45
const mysql_service_log_builtins_t * log_bi
Definition: connection_control.cc:44
const mysql_service_mysql_system_variable_reader_t * sysvar_reader
Definition: ha_innodb.cc:290
REQUIRES_SERVICE_PLACEHOLDER(mysql_current_thread_reader)
REQUIRES_SERVICE_PLACEHOLDER_AS(log_builtins, log_bi)
Component Service placeholders.
int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt)
Definition: libmysql.cc:2377
Read status variable values service(s)
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:76
Definition: mrs_component.cc:137
MRSComponent & mrs_component()
Returns the active MRS component instance.
Definition: mrs_component.cc:178
void register_io_thread_instrumentation()
Definition: mrs_component.cc:154
void deinitialize_io_thread_instrumentation(size_t)
Definition: mrs_component.cc:171
std::unique_ptr< MRSComponent > s_mrs_component
Definition: mrs_component.cc:175
void initialize_io_thread_instrumentation(size_t index)
Definition: mrs_component.cc:161
constexpr const char kMysqlRestServiceAdmin[]
Definition: mrs_component.h:173
const mysql_service_dynamic_privilege_register_t * dynamic_privilege_register
Definition: rewriter_plugin.cc:62
const mysql_service_mysql_thd_attributes_t * mysql_thd_attributes
Definition: rewriter_plugin.cc:59
const mysql_service_mysql_current_thread_reader_t * mysql_current_thread_reader
Definition: rewriter_plugin.cc:63
const mysql_service_global_grants_check_t * global_grants_check
Definition: rewriter_plugin.cc:65
int mysql_service_status_t
Specific type for the service status return values.
Definition: service.h:34