26#ifndef ROUTER_SRC_MYSQL_REST_SERVICE_SRC_COLLECTOR_MYSQL_SQL_SESSION_H_
27#define ROUTER_SRC_MYSQL_REST_SERVICE_SRC_COLLECTOR_MYSQL_SQL_SESSION_H_
41 using Sqls = std::vector<std::string>;
81 const std::string &
ssl_cipher,
const std::string &ca,
82 const std::string &capath,
const std::string &crl,
83 const std::string &crlpath)
override;
88 const std::string &username,
94 unsigned long extra_client_flags = 0)
override;
98 const std::string &db)
override;
100 void reset()
override;
103 uint64_t ps_id, std::vector<MYSQL_BIND> bind_parameters,
109 const std::string &
query)
override;
114 std::unique_ptr<MySQLSession::ResultRow>
query_one(
115 const std::string &
query,
117 std::unique_ptr<MySQLSession::ResultRow>
query_one(
118 const std::string &
query)
override;
124 std::
string quote(const
std::
string &s,
char qchar = '\'') const override;
148 std::unique_ptr<mysqlrouter::MySQLSession>
impl_;
Definition: counted_mysql_session.h:39
~CountedMySQLSession() override
Definition: counted_mysql_session.cc:105
std::vector< std::string > get_session_tracker_data(enum enum_session_state_type type) override
Definition: counted_mysql_session.cc:325
void disconnect() override
Definition: counted_mysql_session.cc:232
void prepare_remove(uint64_t ps_id) override
Definition: counted_mysql_session.cc:256
std::vector< std::string > Sqls
Definition: counted_mysql_session.h:41
virtual void connect(const ConnectionParameters &connection_params)
Definition: counted_mysql_session.cc:139
bool execute_nb(const std::string &query) override
Definition: counted_mysql_session.cc:287
const char * ssl_cipher() override
Definition: counted_mysql_session.cc:319
std::string connection_address_
Definition: counted_mysql_session.h:149
void query(const std::string &query, const ResultRowProcessor &processor, const FieldValidator &validator) override
Definition: counted_mysql_session.cc:266
unsigned int last_errno() override
Definition: counted_mysql_session.cc:317
MYSQL * get_handle() override
Definition: counted_mysql_session.cc:338
virtual void connect_and_set_opts(const ConnectionParameters &connection_params, const Sqls &initial_sqls)
Definition: counted_mysql_session.cc:128
const char * last_error() override
Definition: counted_mysql_session.cc:315
Sqls initial_sqls_
Definition: counted_mysql_session.h:151
uint64_t connection_id()
Definition: counted_mysql_session.cc:344
void update_connection_address(const std::string &host, unsigned int port, const std::string &unix_socket)
Definition: counted_mysql_session.cc:367
const char * last_sqlstate() override
Definition: counted_mysql_session.cc:311
uint64_t last_insert_id() noexcept override
Definition: counted_mysql_session.cc:291
virtual Sqls get_initial_sqls() const
Definition: counted_mysql_session.cc:124
bool has_data_on_socket() override
Definition: counted_mysql_session.cc:321
virtual void execute_initial_sqls()
Definition: counted_mysql_session.cc:118
void execute(const std::string &query) override
Definition: counted_mysql_session.cc:261
uint64_t prepare(const std::string &query) override
Definition: counted_mysql_session.cc:242
void reset() override
Definition: counted_mysql_session.cc:240
const std::string & get_address() noexcept
Definition: counted_mysql_session.cc:363
int ping() override
Definition: counted_mysql_session.cc:285
bool is_ssl_session_reused() override
Definition: counted_mysql_session.cc:330
unsigned warning_count() noexcept override
Definition: counted_mysql_session.cc:299
std::unique_ptr< MySQLSession::ResultRow > query_one(const std::string &query, const FieldValidator &validator) override
Definition: counted_mysql_session.cc:273
std::string quote(const std::string &s, char qchar='\'') const override
Definition: counted_mysql_session.cc:303
ConnectionParameters connection_params_
Definition: counted_mysql_session.h:146
bool is_connected() noexcept override
Definition: counted_mysql_session.cc:307
uint64_t connection_id_
Definition: counted_mysql_session.h:147
void prepare_execute_with_bind_parameters(uint64_t ps_id, std::vector< MYSQL_BIND > bind_parameters, const ResultRowProcessor &processor, const FieldValidator &validator, const OnResultSetEnd &on_resultset_end) override
Definition: counted_mysql_session.cc:247
unsigned long server_version() override
Definition: counted_mysql_session.cc:334
bool reconnect_at_next_query_
Definition: counted_mysql_session.h:150
virtual void allow_failure_at_next_query()
Definition: counted_mysql_session.cc:109
virtual ConnectionParameters get_connection_parameters() const
Definition: counted_mysql_session.cc:114
void set_ssl_options(mysql_ssl_mode ssl_mode, const std::string &tls_version, const std::string &ssl_cipher, const std::string &ca, const std::string &capath, const std::string &crl, const std::string &crlpath) override
Definition: counted_mysql_session.cc:166
uint64_t affected_rows() noexcept override
Definition: counted_mysql_session.cc:295
bool log_queries() const override
Definition: counted_mysql_session.cc:342
void change_user(const std::string &user, const mysql_harness::SecureString &password, const std::string &db) override
Definition: counted_mysql_session.cc:221
CountedMySQLSession()
Definition: counted_mysql_session.cc:92
std::unique_ptr< mysqlrouter::MySQLSession > impl_
Definition: counted_mysql_session.h:148
Definition: destination.h:95
Definition: destination.h:40
Null-terminated string which is securely wiped on destruction.
Definition: secure_string.h:59
Definition: mysql_session.h:157
std::function< void(unsigned, MYSQL_FIELD *)> FieldValidator
Definition: mysql_session.h:166
std::function< bool(const ResultRow &)> ResultRowProcessor
Definition: mysql_session.h:164
unsigned int port
Definition: mysql_session.h:526
int connect_timeout() const
Definition: mysql_session.cc:338
std::function< void()> OnResultSetEnd
Definition: mysql_session.h:167
std::string default_schema
Definition: mysql_session.h:528
mysql_ssl_mode ssl_mode() const
Definition: mysql_session.cc:248
std::string tls_version() const
Definition: mysql_session.cc:257
std::string host
Definition: mysql_session.h:525
static constexpr int kDefaultReadTimeout
Definition: mysql_session.h:160
std::string unix_socket
Definition: mysql_session.h:527
int read_timeout() const
Definition: mysql_session.cc:347
static constexpr int kDefaultConnectTimeout
Definition: mysql_session.h:159
mysql_ssl_mode
Definition: mysql.h:275
@ SSL_MODE_PREFERRED
Definition: mysql.h:277
enum_session_state_type
Type of state change information that the server can include in the Ok packet.
Definition: mysql_com.h:1077
static char * password
Definition: mysql_secure_installation.cc:58
Definition: mrs_component_embedded_mysql_cache.h:33
Definition: http_server_component.cc:36
collector::CountedMySQLSession::ConnectionParameters ConnectionParameters
Definition: query_retry_on_ro.cc:38
noexcept
The return type for any call_and_catch(f, args...) call where f(args...) returns Type.
Definition: call_and_catch.h:76
Define std::hash<Gtid>.
Definition: gtid.h:355
std::vector< T, ut::allocator< T > > vector
Specialization of vector which uses allocator.
Definition: ut0new.h:2724
required string type
Definition: replication_group_member_actions.proto:34
Definition: counted_mysql_session.h:56
std::string username
Definition: counted_mysql_session.h:59
mysql_harness::Destination destination
Definition: counted_mysql_session.h:57
std::string default_schema
Definition: counted_mysql_session.h:61
mysql_harness::SecureString password
Definition: counted_mysql_session.h:60
int read_timeout
Definition: counted_mysql_session.h:63
int connect_timeout
Definition: counted_mysql_session.h:62
unsigned long extra_client_flags
Definition: counted_mysql_session.h:64
Definition: counted_mysql_session.h:52
std::string cert
Definition: counted_mysql_session.h:53
std::string key
Definition: counted_mysql_session.h:54
Definition: counted_mysql_session.h:43
std::string ssl_cipher
Definition: counted_mysql_session.h:46
std::string tls_version
Definition: counted_mysql_session.h:45
std::string crl
Definition: counted_mysql_session.h:49
std::string capath
Definition: counted_mysql_session.h:48
std::string crlpath
Definition: counted_mysql_session.h:50
std::string ca
Definition: counted_mysql_session.h:47
mysql_ssl_mode ssl_mode
Definition: counted_mysql_session.h:44
Definition: counted_mysql_session.h:42
struct collector::CountedMySQLSession::ConnectionParameters::SslCert ssl_cert
struct collector::CountedMySQLSession::ConnectionParameters::SslOptions ssl_opts
struct collector::CountedMySQLSession::ConnectionParameters::ConnOptions conn_opts