29#ifndef MYSQLSHDK_LIBS_DB_MYSQL_SESSION_H_
30#define MYSQLSHDK_LIBS_DB_MYSQL_SESSION_H_
33#include <mysqld_error.h>
47#include "mysqlrouter/jit_executor_plugin_export.h"
59 public std::enable_shared_from_this<Session> {
66 void reset()
override;
69 std::shared_ptr<IResult>
query(
70 const char *sql,
size_t len,
bool buffered,
72 std::shared_ptr<IResult> query_udf(std::string_view sql,
bool buffered);
73 void execute(
const char *sql,
size_t len);
81 bool next_resultset();
82 void prepare_fetch(
DbResult *target);
84 std::string
uri() {
return _uri; }
94 return _mysql ? _mysql->net.compress :
false;
105 _prev_result.reset();
116 bool is_open()
const {
return _mysql ? true :
false; }
125 std::vector<std::string> get_last_gtids()
const;
126 std::optional<std::string> get_last_statement_id()
const;
129 return _mysql ? _mysql->server_status : 0;
140 std::shared_ptr<IResult> run_sql(
const std::string &sql)
override;
142 std::shared_ptr<IResult> run_sql(
143 const char *sql,
size_t len,
bool lazy_fetch,
bool is_udf,
151 uint64_t m_thread_id = 0;
154 int (*
init)(
void **,
const char *,
void *) =
nullptr;
155 int (*read)(
void *,
char *,
unsigned int) =
nullptr;
156 void (*end)(
void *) =
nullptr;
157 int (*error)(
void *,
char *,
unsigned int) =
nullptr;
158 void *userdata =
nullptr;
static mysql_service_status_t init()
Component initialization.
Definition: audit_api_message_emit.cc:566
Definition: jit_executor_db_interface.h:151
Definition: jit_executor_db_interface.h:186
Cache for query attributes to be associated to the next user SQL executed.
Definition: query_attributes.h:115
const char * get_last_error(int *out_code, const char **out_sqlstate)
Definition: session.h:118
MYSQL * get_handle()
Definition: session.h:146
const char * get_server_info()
Definition: session.h:100
std::string _uri
Definition: session.h:148
void execute(const char *sql)
Definition: session.h:75
const char * get_mysql_info() const
Definition: session.h:114
Local_infile_callbacks m_local_infile
Definition: session.h:160
bool is_open() const
Definition: session.h:116
const char * get_connection_info()
Definition: session.h:96
uint64_t get_thread_id() const
Definition: session.h:87
uint64_t get_protocol_info()
Definition: session.h:89
uint32_t get_server_status() const
Definition: session.h:128
const char * get_stats()
Definition: session.h:104
uint64_t warning_count() const
Definition: session.h:132
bool is_compression_enabled() const
Definition: session.h:93
const char * get_ssl_cipher()
Definition: session.h:109
Query_attribute_store m_query_attributes
Definition: session.h:161
std::string uri()
Definition: session.h:84
std::shared_ptr< MYSQL_RES > _prev_result
Definition: session.h:150
static bool execute(MYSQL_STMT *stmt, char *packet, ulong length, bool send_param_count)
Auxiliary function to send COM_STMT_EXECUTE packet to server and read reply.
Definition: libmysql.cc:1831
static char * query
Definition: myisam_ftdump.cc:47
This file defines the client API to MySQL and also the ABI of the dynamically linked libmysqlclient.
const char *STDCALL mysql_sqlstate(MYSQL *mysql)
Definition: client.cc:9536
unsigned int STDCALL mysql_errno(MYSQL *mysql)
Definition: client.cc:9194
const char *STDCALL mysql_info(MYSQL *mysql)
Definition: client.cc:9383
const char *STDCALL mysql_get_host_info(MYSQL *mysql)
Definition: libmysql.cc:901
unsigned int STDCALL mysql_warning_count(MYSQL *mysql)
Definition: libmysql.cc:932
const char *STDCALL mysql_stat(MYSQL *mysql)
Definition: libmysql.cc:881
unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql)
Definition: libmysql.cc:905
const char *STDCALL mysql_get_server_info(MYSQL *mysql)
Definition: libmysql.cc:897
const char *STDCALL mysql_get_ssl_cipher(MYSQL *mysql)
Definition: client.cc:3493
const char *STDCALL mysql_error(MYSQL *mysql)
Definition: client.cc:9198
std::string HARNESS_EXPORT reset()
get 'reset attributes' ESC sequence.
Definition: vt100.cc:37
constexpr value_type query_attributes
Definition: classic_protocol_constants.h:65
AuthorizeManager::Session Session
Definition: authorize_manager.cc:75
Definition: instrumented_condition_variable.h:32
Definition: file_system_exceptions.h:34
Value::Map_type_ref Dictionary_t
Definition: jit_executor_value.h:430
Definition: session.h:153