MySQL 8.4.2
Source Code Documentation
classic_query_forwarder.cc File Reference
#include "classic_query_forwarder.h"
#include <charconv>
#include <chrono>
#include <exception>
#include <limits>
#include <memory>
#include <optional>
#include <sstream>
#include <system_error>
#include <variant>
#include "my_rapidjson_size_t.h"
#include <rapidjson/document.h>
#include <rapidjson/prettywriter.h>
#include "classic_connection_base.h"
#include "classic_frame.h"
#include "classic_lazy_connect.h"
#include "classic_query_param.h"
#include "classic_query_sender.h"
#include "classic_quit_sender.h"
#include "classic_session_tracker.h"
#include "command_router_set.h"
#include "harness_assert.h"
#include "hexify.h"
#include "implicit_commit_parser.h"
#include "my_sys.h"
#include "mysql/harness/stdx/expected.h"
#include "mysql/harness/tls_error.h"
#include "mysql/harness/utility/string.h"
#include "mysqld_error.h"
#include "mysqlrouter/classic_protocol_binary.h"
#include "mysqlrouter/classic_protocol_codec_binary.h"
#include "mysqlrouter/classic_protocol_codec_error.h"
#include "mysqlrouter/classic_protocol_constants.h"
#include "mysqlrouter/classic_protocol_message.h"
#include "mysqlrouter/client_error_code.h"
#include "mysqlrouter/connection_pool_component.h"
#include "mysqlrouter/datatypes.h"
#include "mysqlrouter/routing.h"
#include "mysqlrouter/utils.h"
#include "show_warnings_parser.h"
#include "sql/lex.h"
#include "sql_exec_context.h"
#include "sql_lexer.h"
#include "sql_lexer_thd.h"
#include "sql_parser.h"
#include "sql_parser_state.h"
#include "sql_splitting_allowed.h"
#include "start_transaction_parser.h"
#include "stmt_classifier.h"

Classes

class  anonymous_namespace{classic_query_forwarder.cc}::Name_string
 
class  anonymous_namespace{classic_query_forwarder.cc}::InterceptedStatementsParser
 
class  anonymous_namespace{classic_query_forwarder.cc}::ForwardedShowWarningsHandler
 
class  anonymous_namespace{classic_query_forwarder.cc}::ForwardedShowWarningCountHandler
 
class  anonymous_namespace{classic_query_forwarder.cc}::FailedQueryHandler
 

Namespaces

namespace  anonymous_namespace{classic_query_forwarder.cc}
 

Macros

#define RAPIDJSON_HAS_STDSTRING   1
 

Functions

std::string anonymous_namespace{classic_query_forwarder.cc}::string_from_timepoint (std::chrono::time_point< std::chrono::system_clock > tp)
 format a timepoint as json-value (date-time format). More...
 
bool anonymous_namespace{classic_query_forwarder.cc}::ieq (const std::string_view &a, const std::string_view &b)
 
std::string anonymous_namespace{classic_query_forwarder.cc}::to_string (stdx::flags< StmtClassifier > flags)
 
bool anonymous_namespace{classic_query_forwarder.cc}::contains_multiple_statements (SqlLexer &&lexer)
 
stdx::flags< StmtClassifieranonymous_namespace{classic_query_forwarder.cc}::classify (SqlLexer &&lexer, bool forbid_set_trackers, bool config_access_mode_auto)
 
uint64_t anonymous_namespace{classic_query_forwarder.cc}::get_error_count (MysqlRoutingClassicConnectionBase *connection)
 
uint64_t anonymous_namespace{classic_query_forwarder.cc}::get_warning_count (MysqlRoutingClassicConnectionBase *connection)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::send_resultset (MysqlRoutingClassicConnectionBase::ClientSideConnection &conn, const std::vector< classic_protocol::message::server::ColumnMeta > &columns, const std::vector< classic_protocol::message::server::Row > &rows)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::trace_as_json (const TraceSpan &event_time_series, rapidjson::PrettyWriter< rapidjson::StringBuffer > &writer, const TraceEvent &event)
 
stdx::expected< std::string, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::trace_as_json (const TraceSpan &event_time_series)
 
std::vector< classic_protocol::message::server::Rowanonymous_namespace{classic_query_forwarder.cc}::rows_from_warnings (MysqlRoutingClassicConnectionBase *connection, ShowWarnings::Verbosity verbosity, uint64_t row_count, uint64_t offset)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::show_count (MysqlRoutingClassicConnectionBase *connection, const char *name, uint64_t count)
 
const char * anonymous_namespace{classic_query_forwarder.cc}::show_warning_count_name (ShowWarningCount::Verbosity verbosity, ShowWarningCount::Scope scope)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::show_warning_count (MysqlRoutingClassicConnectionBase *connection, ShowWarningCount::Verbosity verbosity, ShowWarningCount::Scope scope)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::show_warnings (MysqlRoutingClassicConnectionBase *connection, ShowWarnings::Verbosity verbosity, uint64_t row_count, uint64_t offset)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::execute_command_router_set_trace (MysqlRoutingClassicConnectionBase *connection, const CommandRouterSet &cmd)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::execute_command_router_set_access_mode (MysqlRoutingClassicConnectionBase *connection, const CommandRouterSet &cmd)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::execute_command_router_set_wait_for_my_writes (MysqlRoutingClassicConnectionBase *connection, const CommandRouterSet &cmd)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::execute_command_router_set_wait_for_my_writes_timeout (MysqlRoutingClassicConnectionBase *connection, const CommandRouterSet &cmd)
 
stdx::expected< void, std::error_code > anonymous_namespace{classic_query_forwarder.cc}::execute_command_router_set (MysqlRoutingClassicConnectionBase *connection, const CommandRouterSet &cmd)
 
stdx::expected< std::variant< std::monostate, ShowWarningCount, ShowWarnings, CommandRouterSet >, std::string > anonymous_namespace{classic_query_forwarder.cc}::intercept_diagnostics_area_queries (SqlLexer &&lexer)
 
stdx::expected< std::variant< std::monostate, StartTransaction >, std::string > anonymous_namespace{classic_query_forwarder.cc}::start_transaction (SqlLexer &&lexer)
 
stdx::expected< SplittingAllowedParser::Allowed, std::string > anonymous_namespace{classic_query_forwarder.cc}::splitting_allowed (SqlLexer &&lexer)
 
stdx::expected< bool, std::string > anonymous_namespace{classic_query_forwarder.cc}::is_implicitly_committed (SqlLexer &&lexer, std::optional< classic_protocol::session_track::TransactionState > trx_state)
 
bool anonymous_namespace{classic_query_forwarder.cc}::ends_with (std::string_view haystack, std::string_view needle)
 
bool anonymous_namespace{classic_query_forwarder.cc}::set_transaction_contains_read_only (std::optional< classic_protocol::session_track::TransactionCharacteristics > trx_char)
 
bool has_non_router_attributes (const std::vector< classic_protocol::message::client::Query::Param > &params)
 

Variables

const auto anonymous_namespace{classic_query_forwarder.cc}::forwarded_status_flags
 

Macro Definition Documentation

◆ RAPIDJSON_HAS_STDSTRING

#define RAPIDJSON_HAS_STDSTRING   1

Function Documentation

◆ has_non_router_attributes()

bool has_non_router_attributes ( const std::vector< classic_protocol::message::client::Query::Param > &  params)