1#ifndef PROTOCOL_CLASSIC_INCLUDED
2#define PROTOCOL_CLASSIC_INCLUDED
77 bool send_ok(uint server_status, uint statement_warn_count,
79 const char *message)
override;
81 bool send_eof(uint server_status, uint statement_warn_count)
override;
83 bool send_error(uint sql_errno,
const char *err_msg,
84 const char *sql_state)
override;
85 bool store_ps_status(ulong stmt_id, uint column_count, uint param_count,
86 ulong cond_count)
override;
118 bool flush()
override;
160 int shutdown(
bool server_shutdown =
false)
override;
169 this->m_client_capabilities = client_capabilities;
204 bool on_full_packet =
false);
266 bool is_sql_prepare)
override;
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:250
Definition: sql_list.h:810
Dynamic parameters used as placeholders ('?') inside prepared statements.
Definition: item.h:4734
Definition: sql_list.h:433
Definition: protocol_classic.h:241
bool store_tiny(longlong from, uint32 zerofill) override
Definition: protocol_classic.cc:3806
enum enum_protocol_type type() const override
Definition: protocol_classic.h:268
bool store_time(const MYSQL_TIME &time, uint precision) override
Definition: protocol_classic.cc:3944
bool store_double(double from, uint32 decimals, uint32 zerofill) override
Definition: protocol_classic.cc:3867
bool send_parameters(List< Item_param > *parameters, bool is_sql_prepare) override
Sends OUT-parameters by writing the values to the protocol.
Definition: protocol_classic.cc:3668
bool store_datetime(const MYSQL_TIME &time, uint precision) override
Definition: protocol_classic.cc:3880
bool store_date(const MYSQL_TIME &time) override
Definition: protocol_classic.cc:3924
bool store_long(longlong from, uint32 zerofill) override
Definition: protocol_classic.cc:3828
bool store_longlong(longlong from, bool unsigned_flag, uint32 zerofill) override
Definition: protocol_classic.cc:3840
bool store_null() override
Definition: protocol_classic.cc:3795
bool store_float(float nr, uint32 decimals, uint32 zerofill) override
Definition: protocol_classic.cc:3854
void start_row() override
Result set sending functions.
Definition: protocol_classic.cc:3788
bool store_short(longlong from, uint32 zerofill) override
Definition: protocol_classic.cc:3816
Protocol_binary(THD *thd_arg)
Definition: protocol_classic.h:247
uint bit_fields
Definition: protocol_classic.h:243
bool start_result_metadata(uint num_cols, uint flags, const CHARSET_INFO *resultcs) override
Prepares the server for metadata sending.
Definition: protocol_classic.cc:3780
Protocol_binary()=default
Definition: protocol_classic.h:53
uint get_rw_status() override
Returns the read/writing status.
Definition: protocol_classic.cc:3027
void set_vio(Vio *vio)
Definition: protocol_classic.cc:1400
int read_packet() override
Read packet from client.
Definition: protocol_classic.cc:1410
ulong input_packet_length
Definition: protocol_classic.h:73
bool parse_packet(union COM_DATA *data, enum_server_command cmd)
Definition: protocol_classic.cc:2835
bool flush() override
Used for the classic protocol.
Definition: protocol_classic.cc:3040
void claim_memory_ownership(bool claim)
Definition: protocol_classic.cc:1370
bool write(const uchar *ptr, size_t len)
Definition: protocol_classic.cc:1380
const CHARSET_INFO * result_cs
Definition: protocol_classic.h:75
NET * get_net()
Definition: protocol_classic.cc:1394
virtual void set_write_timeout(ulong write_timeout)
Definition: protocol_classic.cc:1361
enum enum_field_types * field_types
Definition: protocol_classic.h:68
bool start_result_metadata(uint num_cols, uint flags, const CHARSET_INFO *resultcs) override
Prepares the server for metadata sending.
Definition: protocol_classic.cc:3082
bool end_row() override
Definition: protocol_classic.cc:3365
bool connection_alive() const override
Checks if the protocol's connection with the client is still alive.
Definition: protocol_classic.cc:3399
ulong get_client_capabilities() override
Returns the client capabilities stored on the protocol.
Definition: protocol_classic.h:166
void set_client_capabilities(ulong client_capabilities)
Definition: protocol_classic.h:168
uchar * get_raw_packet()
Definition: protocol_classic.h:201
void wipe_net()
Definition: protocol_classic.cc:1386
uchar * input_raw_packet
Definition: protocol_classic.h:74
uchar get_error()
Definition: protocol_classic.cc:1384
String convert
Definition: protocol_classic.h:64
int get_command(COM_DATA *com_data, enum_server_command *cmd) override
Reads the command from the protocol and creates a command.
Definition: protocol_classic.cc:2993
bool send_field_metadata(Send_field *field, const CHARSET_INFO *item_charset) override
Sends a single column metadata.
Definition: protocol_classic.cc:3271
bool store_ps_status(ulong stmt_id, uint column_count, uint param_count, ulong cond_count) override
Sends prepared statement's id and metadata to the client after prepare.
Definition: protocol_classic.cc:3042
bool store_field(const Field *field) final
Definition: protocol_classic.cc:1286
enum enum_vio_type connection_type() const override
Returns the type of the connection.
Definition: protocol_classic.h:141
void add_client_capability(ulong client_capability)
Definition: protocol_classic.h:172
bool send_eof(uint server_status, uint statement_warn_count) override
A default implementation of "EOF" packet response to the client.
Definition: protocol_classic.cc:1317
Protocol_classic(THD *thd)
Definition: protocol_classic.h:92
bool get_compression() override
Returns if the protocol is compressed or not.
Definition: protocol_classic.cc:3064
Protocol_classic()
Definition: protocol_classic.h:90
void end_net()
Definition: protocol_classic.cc:1374
String * packet
Definition: protocol_classic.h:63
bool send_ok(uint server_status, uint statement_warn_count, ulonglong affected_rows, ulonglong last_insert_id, const char *message) override
A default implementation of "OK" packet response to the client.
Definition: protocol_classic.cc:1299
uint sending_flags
Definition: protocol_classic.h:72
void init(THD *thd_arg)
Definition: protocol_classic.cc:1278
Vio * get_vio()
Definition: protocol_classic.cc:1396
bool end_result_metadata() override
Signals the client that the metadata sending is done.
Definition: protocol_classic.cc:3127
bool init_net(Vio *vio)
Definition: protocol_classic.cc:1366
bool net_store_data_with_conversion(const uchar *from, size_t length, const CHARSET_INFO *fromcs, const CHARSET_INFO *tocs)
net_store_data() - extended version with character set conversion.
Definition: protocol_classic.cc:552
uint field_count
Definition: protocol_classic.h:71
my_socket get_socket()
Definition: protocol_classic.cc:3987
void remove_client_capability(unsigned long capability)
Definition: protocol_classic.h:176
bool create_command(COM_DATA *com_data, enum_server_command cmd, uchar *pkt, size_t length)
Parses the passed parameters and creates a command.
Definition: protocol_classic.cc:2984
bool send_error(uint sql_errno, const char *err_msg, const char *sql_state) override
A default implementation of "ERROR" packet response to the client.
Definition: protocol_classic.cc:1343
void set_result_character_set(const CHARSET_INFO *charset)
Sets the character set expected by the client.
Definition: protocol_classic.h:212
bool store_string(const char *from, size_t length, const CHARSET_INFO *cs) final
Definition: protocol_classic.cc:3425
ulong get_packet_length()
Definition: protocol_classic.h:199
void abort_row() override
Definition: protocol_classic.h:133
uint field_pos
Definition: protocol_classic.h:65
uint count
Definition: protocol_classic.h:69
String * get_output_packet()
Definition: protocol_classic.cc:1408
void set_output_pkt_nr(uint pkt_nr)
Definition: protocol_classic.cc:1402
bool has_client_capability(unsigned long client_capability) override
Checks if the client capabilities include the one specified as parameter.
Definition: protocol_classic.h:180
uint get_output_pkt_nr()
Definition: protocol_classic.cc:1406
int shutdown(bool server_shutdown=false) override
Thread is being shut down, disconnect and free resources.
Definition: protocol_classic.cc:3415
ulong m_client_capabilities
Definition: protocol_classic.h:55
virtual void set_read_timeout(ulong read_timeout, bool on_full_packet=false)
Definition: protocol_classic.cc:1353
uint get_compression_level() override
Returns compression level.
Definition: protocol_classic.cc:3074
void end_partial_result_set() override
Finish the result set with EOF packet, as is expected by the client, if there is an error evaluating ...
Definition: protocol_classic.cc:3035
THD * m_thd
Definition: protocol_classic.h:62
bool send_metadata
Definition: protocol_classic.h:66
char * get_compression_algorithm() override
Returns compression algorithm name.
Definition: protocol_classic.cc:3066
bool bad_packet
Definition: protocol_classic.h:89
void set_max_packet_size(ulong max_packet_size)
Definition: protocol_classic.cc:1390
Class used for the old (MySQL 4.0 protocol).
Definition: protocol_classic.h:219
bool store_null() override
Definition: protocol_classic.cc:3408
bool store_tiny(longlong from, uint32 zerofill) override
Definition: protocol_classic.cc:3477
Protocol_text(THD *thd_arg)
Definition: protocol_classic.h:222
bool store_date(const MYSQL_TIME &time) override
Definition: protocol_classic.cc:3637
bool store_double(double from, uint32 decimals, uint32 zerofill) override
Definition: protocol_classic.cc:3595
bool store_long(longlong from, uint32 zerofill) override
Definition: protocol_classic.cc:3494
bool store_longlong(longlong from, bool unsigned_flag, uint32 zerofill) override
Definition: protocol_classic.cc:3503
bool store_short(longlong from, uint32 zerofill) override
Definition: protocol_classic.cc:3485
bool store_float(float nr, uint32 decimals, uint32 zerofill) override
Definition: protocol_classic.cc:3586
bool store_time(const MYSQL_TIME &time, uint precision) override
Definition: protocol_classic.cc:3646
bool send_parameters(List< Item_param > *parameters, bool) override
Sets OUT-parameters to user variables.
Definition: protocol_classic.cc:3734
bool store_decimal(const my_decimal *, uint, uint) final
Definition: protocol_classic.cc:3512
bool store_datetime(const MYSQL_TIME &time, uint precision) override
Definition: protocol_classic.cc:3625
enum enum_protocol_type type() const override
Definition: protocol_classic.h:238
void start_row() override
Result set sending functions.
Definition: protocol_classic.cc:3403
Definition: protocol.h:32
enum_protocol_type
Enum used by type() to specify the protocol type.
Definition: protocol.h:100
@ PROTOCOL_BINARY
Definition: protocol.h:103
@ PROTOCOL_TEXT
Definition: protocol.h:101
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:166
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
Definition: sql_list.h:697
my_decimal class limits 'decimal_t' type to what we need in MySQL.
Definition: my_decimal.h:94
This file contains the field type.
enum_field_types
Column types for MySQL Note: Keep include/mysql/components/services/bits/stored_program_bits....
Definition: field_types.h:54
static int flags[50]
Definition: hp_test1.cc:39
A better implementation of the UNIX ctype(3) library.
enum_server_command
A list of all MySQL protocol commands.
Definition: my_command.h:47
Header for compiler-dependent features.
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
unsigned char uchar
Definition: my_inttypes.h:51
long long int longlong
Definition: my_inttypes.h:54
uint32_t uint32
Definition: my_inttypes.h:66
Common #defines and includes for file and socket I/O.
int my_socket
Definition: mysql.h:64
Common definition between mysql server & client.
Time declarations shared between the server and client API: you should not add anything to this heade...
constexpr value_type zerofill
Definition: classic_protocol_constants.h:273
const std::string charset("charset")
Definition: commit_order_queue.h:33
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:921
uchar * net_store_data(uchar *to, const uchar *from, size_t length)
Definition: protocol_classic.cc:1268
bool net_send_error(THD *thd, uint sql_errno, const char *err)
Send a error string to client.
Definition: protocol_classic.cc:615
bool store(Protocol *prot, I_List< i_string > *str_list)
Send a set of strings as one long string with ',' in between.
Definition: protocol_classic.cc:3375
Definition: m_ctype.h:422
Definition: mysql_time.h:81
Definition: mysql_com.h:917
Definition: violite.h:319
Definition: com_data.h:111
enum enum_vio_type vio_type(const MYSQL_VIO vio)
enum_vio_type
Definition: violite.h:78
@ NO_VIO_TYPE
Type of the connection is unknown.
Definition: violite.h:82