MySQL 26.10.0
Source Code Documentation
mrs_component Namespace Reference

Namespaces

namespace  anonymous_namespace{mrs_component.cc}
 
namespace  anonymous_namespace{mrs_component_backend.cc}
 
namespace  anonymous_namespace{mrs_component_embedded_mysql_cache.cc}
 
namespace  anonymous_namespace{mrs_component_embedded_mysql_result.cc}
 
namespace  anonymous_namespace{mrs_component_embedded_mysql_session.cc}
 
namespace  anonymous_namespace{mrs_component_mysql_command_service_session.cc}
 
namespace  anonymous_namespace{mrs_component_udfs.cc}
 

Classes

class  Backend
 Owns and controls the embedded MRS backend lifecycle. More...
 
class  Command_executor
 Executes text queries and prepared statements through component services. More...
 
class  ComponentEmbeddedRuntimeServices
 Adapts embedded MRS runtime operations to Server component services. More...
 
struct  CurrentSecurityCtx
 
class  Log
 Emits MRS messages through the MySQL Server logging services. More...
 
class  MRSComponent
 Coordinates registration and lifecycle of the MySQL REST Service component. More...
 
class  Mysql_command_service_session
 Owns the component command-service handle and optional thread initialization. More...
 
struct  RouterConfig
 
class  ServerConfig
 Holds the Server configuration required by the MRS component. More...
 
struct  Statusvar
 
class  StatusVars
 Owns and manages status variables exposed by the MRS component. More...
 
class  SystemVars
 Owns and manages system variables exposed by the MRS component. More...
 
struct  Sysvar
 
struct  SysvarBase
 
class  Table_accessor
 RAII wrapper around MySQL Table Access services. More...
 
struct  UDF
 
class  UDFs
 Owns and manages the UDFs provided by the MRS component. More...
 

Typedefs

using Row = std::vector< std::string >
 
using Resultset = std::vector< Row >
 
using sv_ulong = Sysvar< unsigned long >
 
using sv_ulonglong = Sysvar< unsigned long long >
 
using sv_char = Sysvar< const char * >
 

Enumerations

enum class  LogLevel : uint8_t { ERROR , WARNING , DEBUG }
 
enum class  AccountProvisioning : std::uint8_t { kValidateOnly , kAllowInstallerContext }
 
enum class  StatementResultStatus { kError , kResult , kNoResult }
 
enum class  CommandResultStatus { kError , kResult , kNoResult }
 

Functions

void register_io_thread_instrumentation ()
 
void initialize_io_thread_instrumentation (size_t index)
 
void deinitialize_io_thread_instrumentation (size_t)
 
MRSComponent & mrs_component ()
 Returns the active MRS component instance. More...
 
static mysql_service_status_t mysql_rest_service_init ()
 Initialize the MySQL Rest Service Component. More...
 
static mysql_service_status_t mysql_rest_service_deinit ()
 Deinitialize the MySQL Rest Service Component. More...
 
std::string to_string (LogLevel level)
 
LogLevel log_level_from_string (const std::string &level_str)
 
std::unique_ptr< collector::MysqlCacheManager > create_embedded_mysql_cache_manager (const mrs::Configuration &configuration, const std::string &local_address, const std::string &metadata_auth_id, const std::string &data_auth_id)
 
std::shared_ptr< collector::MysqlFixedPoolManager > create_embedded_mysql_user_session_pool (uint32_t passthrough_pool_size, const std::string &local_address, const std::string &auth_id)
 
void configure_statement_handle (my_h_statement stmt)
 
uint64_t mysql_bind_type_to_statement_type (enum_field_types type)
 
unsigned long mysql_bind_data_length (const MYSQL_BIND &bind)
 
std::unique_ptr< mysqlrouter::MySQLSession::ResultRow > clone_result_row (const mysqlrouter::MySQLSession::ResultRow &row)
 
StatementResultStatus process_statement_result (my_h_statement stmt, const mysqlrouter::MySQLSession::ResultRowProcessor &processor, const mysqlrouter::MySQLSession::FieldValidator &validator)
 
CommandResultStatus process_command_result (MYSQL_H mysql_h, const mysqlrouter::MySQLSession::ResultRowProcessor &processor, const mysqlrouter::MySQLSession::FieldValidator &validator)
 
std::unique_ptr< mysqlrouter::MySQLSession > make_embedded_mysql_session (bool bypass_max_connections)
 
void initialize_worker_command_thread ()
 
void deinitialize_worker_command_thread () noexcept
 
static const char * get_ssl_cert_default ()
 
static const char * get_ssl_key_default ()
 
static const char * get_ssl_cipher_default ()
 
static void report_invalid_integer_value (SYS_VAR *var, long long value, bool is_unsigned, const char *requirement)
 

Variables

std::unique_ptr< MRSComponent > s_mrs_component {nullptr}
 
constexpr const char kMysqlRestServiceAdmin [] = "MYSQL_REST_SERVICE_ADMIN"
 
constexpr unsigned int kCpusPerIoWorker = 4
 
constexpr const char kMetadataSchemaCheckQuery []
 
constexpr const char kMetadataSchemaVersionQuery []
 
constexpr uint64_t kDefaultHttpPort = 33443
 
constexpr uint64_t kMinHttpPort = 1
 
constexpr uint64_t kMaxHttpPort = 65535
 
constexpr unsigned long kDefaultIoWorkerThreads = 0
 
constexpr unsigned long kMinIoWorkerThreads = 0
 
constexpr unsigned long kMaxIoWorkerThreads = 1024
 
constexpr unsigned long kDefaultHttpMaxConnections = 1024
 
constexpr unsigned long kMinHttpMaxConnections = 1
 
constexpr unsigned long kMaxHttpMaxConnections = 100000
 
constexpr uint64_t kDefaultHttpMaxBodySize = 16 * 1024 * 1024
 
constexpr uint64_t kMinHttpMaxBodySize = 0
 
constexpr uint64_t kMaxHttpMaxBodySize = 2147483648ULL
 
unsigned constexpr long MAX_SAFE_LENGTH = 255
 
constexpr const char kRestartUdfName [] = "mysql_rest_service_restart"
 
constexpr const char kStopUdfName [] = "mysql_rest_service_stop"
 
constexpr const char kStartUdfName [] = "mysql_rest_service_start"
 

Typedef Documentation

◆ Resultset

using mrs_component::Resultset = typedef std::vector<Row>

◆ Row

using mrs_component::Row = typedef std::vector<std::string>

◆ sv_char

using mrs_component::sv_char = typedef Sysvar<const char *>

◆ sv_ulong

using mrs_component::sv_ulong = typedef Sysvar<unsigned long>

◆ sv_ulonglong

using mrs_component::sv_ulonglong = typedef Sysvar<unsigned long long>

Enumeration Type Documentation

◆ AccountProvisioning

enum class mrs_component::AccountProvisioning : std::uint8_t
strong
Enumerator
kValidateOnly 
kAllowInstallerContext 

◆ CommandResultStatus

Enumerator
kError 
kResult 
kNoResult 

◆ LogLevel

enum class mrs_component::LogLevel : uint8_t
strong
Enumerator
ERROR 
WARNING 
DEBUG 

◆ StatementResultStatus

Enumerator
kError 
kResult 
kNoResult 

Function Documentation

◆ clone_result_row()

std::unique_ptr< mysqlrouter::MySQLSession::ResultRow > mrs_component::clone_result_row ( const mysqlrouter::MySQLSession::ResultRow &  row)

◆ configure_statement_handle()

void mrs_component::configure_statement_handle ( my_h_statement  stmt)

◆ create_embedded_mysql_cache_manager()

std::unique_ptr< collector::MysqlCacheManager > mrs_component::create_embedded_mysql_cache_manager ( const mrs::Configuration &  configuration,
const std::string &  local_address,
const std::string &  metadata_auth_id,
const std::string &  data_auth_id 
)

◆ create_embedded_mysql_user_session_pool()

std::shared_ptr< collector::MysqlFixedPoolManager > mrs_component::create_embedded_mysql_user_session_pool ( uint32_t  passthrough_pool_size,
const std::string &  local_address,
const std::string &  auth_id 
)

◆ deinitialize_io_thread_instrumentation()

void mrs_component::deinitialize_io_thread_instrumentation ( size_t  )

◆ deinitialize_worker_command_thread()

void mrs_component::deinitialize_worker_command_thread ( )
noexcept

◆ get_ssl_cert_default()

static const char * mrs_component::get_ssl_cert_default ( )
static

◆ get_ssl_cipher_default()

static const char * mrs_component::get_ssl_cipher_default ( )
static

◆ get_ssl_key_default()

static const char * mrs_component::get_ssl_key_default ( )
static

◆ initialize_io_thread_instrumentation()

void mrs_component::initialize_io_thread_instrumentation ( size_t  index)

◆ initialize_worker_command_thread()

void mrs_component::initialize_worker_command_thread ( )

◆ log_level_from_string()

LogLevel mrs_component::log_level_from_string ( const std::string &  level_str)
inline

◆ make_embedded_mysql_session()

std::unique_ptr< mysqlrouter::MySQLSession > mrs_component::make_embedded_mysql_session ( bool  bypass_max_connections)

◆ mrs_component()

MRSComponent & mrs_component::mrs_component ( )

Returns the active MRS component instance.

◆ mysql_bind_data_length()

unsigned long mrs_component::mysql_bind_data_length ( const MYSQL_BIND &  bind)

◆ mysql_bind_type_to_statement_type()

uint64_t mrs_component::mysql_bind_type_to_statement_type ( enum_field_types  type)

◆ mysql_rest_service_deinit()

static mysql_service_status_t mrs_component::mysql_rest_service_deinit ( )
static

Deinitialize the MySQL Rest Service Component.

◆ mysql_rest_service_init()

static mysql_service_status_t mrs_component::mysql_rest_service_init ( )
static

Initialize the MySQL Rest Service Component.

◆ process_command_result()

CommandResultStatus mrs_component::process_command_result ( MYSQL_H  mysql_h,
const mysqlrouter::MySQLSession::ResultRowProcessor &  processor,
const mysqlrouter::MySQLSession::FieldValidator &  validator 
)

◆ process_statement_result()

StatementResultStatus mrs_component::process_statement_result ( my_h_statement  stmt,
const mysqlrouter::MySQLSession::ResultRowProcessor &  processor,
const mysqlrouter::MySQLSession::FieldValidator &  validator 
)

◆ register_io_thread_instrumentation()

void mrs_component::register_io_thread_instrumentation ( )

◆ report_invalid_integer_value()

static void mrs_component::report_invalid_integer_value ( SYS_VAR *  var,
long long  value,
bool  is_unsigned,
const char *  requirement 
)
static

◆ to_string()

std::string mrs_component::to_string ( LogLevel  level)
inline

Variable Documentation

◆ kCpusPerIoWorker

constexpr unsigned int mrs_component::kCpusPerIoWorker = 4
constexpr

◆ kDefaultHttpMaxBodySize

constexpr uint64_t mrs_component::kDefaultHttpMaxBodySize = 16 * 1024 * 1024
constexpr

◆ kDefaultHttpMaxConnections

constexpr unsigned long mrs_component::kDefaultHttpMaxConnections = 1024
constexpr

◆ kDefaultHttpPort

constexpr uint64_t mrs_component::kDefaultHttpPort = 33443
constexpr

◆ kDefaultIoWorkerThreads

constexpr unsigned long mrs_component::kDefaultIoWorkerThreads = 0
constexpr

◆ kMaxHttpMaxBodySize

constexpr uint64_t mrs_component::kMaxHttpMaxBodySize = 2147483648ULL
constexpr

◆ kMaxHttpMaxConnections

constexpr unsigned long mrs_component::kMaxHttpMaxConnections = 100000
constexpr

◆ kMaxHttpPort

constexpr uint64_t mrs_component::kMaxHttpPort = 65535
constexpr

◆ kMaxIoWorkerThreads

constexpr unsigned long mrs_component::kMaxIoWorkerThreads = 1024
constexpr

◆ kMetadataSchemaCheckQuery

constexpr const char mrs_component::kMetadataSchemaCheckQuery[]
constexpr
Initial value:
= R"SQL(
SELECT COUNT(*) AS item_count
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'mysql_rest_service_metadata'
AND TABLE_NAME = 'msm_schema_version'
AND TABLE_TYPE = 'VIEW'
)SQL"

◆ kMetadataSchemaVersionQuery

constexpr const char mrs_component::kMetadataSchemaVersionQuery[]
constexpr
Initial value:
=
"SELECT major FROM mysql_rest_service_metadata.msm_schema_version"

◆ kMinHttpMaxBodySize

constexpr uint64_t mrs_component::kMinHttpMaxBodySize = 0
constexpr

◆ kMinHttpMaxConnections

constexpr unsigned long mrs_component::kMinHttpMaxConnections = 1
constexpr

◆ kMinHttpPort

constexpr uint64_t mrs_component::kMinHttpPort = 1
constexpr

◆ kMinIoWorkerThreads

constexpr unsigned long mrs_component::kMinIoWorkerThreads = 0
constexpr

◆ kMysqlRestServiceAdmin

constexpr const char mrs_component::kMysqlRestServiceAdmin[] = "MYSQL_REST_SERVICE_ADMIN"
constexpr

◆ kRestartUdfName

constexpr const char mrs_component::kRestartUdfName[] = "mysql_rest_service_restart"
constexpr

◆ kStartUdfName

constexpr const char mrs_component::kStartUdfName[] = "mysql_rest_service_start"
constexpr

◆ kStopUdfName

constexpr const char mrs_component::kStopUdfName[] = "mysql_rest_service_stop"
constexpr

◆ MAX_SAFE_LENGTH

unsigned constexpr long mrs_component::MAX_SAFE_LENGTH = 255
constexpr

◆ s_mrs_component

std::unique_ptr< MRSComponent > mrs_component::s_mrs_component {nullptr}