MySQL 8.4.3
Source Code Documentation
Protocol_text Class Reference

Class used for the old (MySQL 4.0 protocol). More...

#include <protocol_classic.h>

Inheritance diagram for Protocol_text:
[legend]

Public Member Functions

 Protocol_text ()=default
 
 Protocol_text (THD *thd_arg)
 
bool store_null () override
 
bool store_tiny (longlong from, uint32 zerofill) override
 
bool store_short (longlong from, uint32 zerofill) override
 
bool store_long (longlong from, uint32 zerofill) override
 
bool store_longlong (longlong from, bool unsigned_flag, uint32 zerofill) override
 
bool store_decimal (const my_decimal *, uint, uint) final
 
bool store_float (float nr, uint32 decimals, uint32 zerofill) override
 
bool store_double (double from, uint32 decimals, uint32 zerofill) override
 
bool store_datetime (const MYSQL_TIME &time, uint precision) override
 
bool store_date (const MYSQL_TIME &time) override
 
bool store_time (const MYSQL_TIME &time, uint precision) override
 
void start_row () override
 Result set sending functions. More...
 
bool send_parameters (List< Item_param > *parameters, bool) override
 Sets OUT-parameters to user variables. More...
 
enum enum_protocol_type type () const override
 
- Public Member Functions inherited from Protocol_classic
 Protocol_classic ()
 
 Protocol_classic (THD *thd)
 
void init (THD *thd_arg)
 
bool store_field (const Field *field) final
 
bool store_string (const char *from, size_t length, const CHARSET_INFO *cs) final
 
int read_packet () override
 Read packet from client. More...
 
int get_command (COM_DATA *com_data, enum_server_command *cmd) override
 Reads the command from the protocol and creates a command. More...
 
bool create_command (COM_DATA *com_data, enum_server_command cmd, uchar *pkt, size_t length)
 Parses the passed parameters and creates a command. More...
 
bool flush () override
 Used for the classic protocol. More...
 
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 the next row and a continue handler for the error. More...
 
bool end_row () override
 
uint get_rw_status () override
 Returns the read/writing status. More...
 
bool get_compression () override
 Returns if the protocol is compressed or not. More...
 
char * get_compression_algorithm () override
 Returns compression algorithm name. More...
 
uint get_compression_level () override
 Returns compression level. More...
 
bool start_result_metadata (uint num_cols, uint flags, const CHARSET_INFO *resultcs) override
 Prepares the server for metadata sending. More...
 
bool end_result_metadata () override
 Signals the client that the metadata sending is done. More...
 
bool send_field_metadata (Send_field *field, const CHARSET_INFO *item_charset) override
 Sends a single column metadata. More...
 
void abort_row () override
 
enum enum_vio_type connection_type () const override
 Returns the type of the connection. More...
 
my_socket get_socket ()
 
bool init_net (Vio *vio)
 
void claim_memory_ownership (bool claim)
 
void end_net ()
 
bool write (const uchar *ptr, size_t len)
 
uchar get_error ()
 
void set_max_packet_size (ulong max_packet_size)
 
int shutdown (bool server_shutdown=false) override
 Thread is being shut down, disconnect and free resources. More...
 
void wipe_net ()
 
bool connection_alive () const override
 Checks if the protocol's connection with the client is still alive. More...
 
ulong get_client_capabilities () override
 Returns the client capabilities stored on the protocol. More...
 
void set_client_capabilities (ulong client_capabilities)
 
void add_client_capability (ulong client_capability)
 
void remove_client_capability (unsigned long capability)
 
bool has_client_capability (unsigned long client_capability) override
 Checks if the client capabilities include the one specified as parameter. More...
 
NETget_net ()
 
Vioget_vio ()
 
const Vioget_vio () const
 
void set_vio (Vio *vio)
 
void set_output_pkt_nr (uint pkt_nr)
 
uint get_output_pkt_nr ()
 
Stringget_output_packet ()
 
ulong get_packet_length ()
 
ucharget_raw_packet ()
 
virtual void set_read_timeout (ulong read_timeout, bool on_full_packet=false)
 
virtual void set_write_timeout (ulong write_timeout)
 
void set_result_character_set (const CHARSET_INFO *charset)
 Sets the character set expected by the client. More...
 
- Public Member Functions inherited from Protocol
virtual ~Protocol ()=default
 
Protocolpop_protocol ()
 Remove the reference to the previous protocol and return it. More...
 
void push_protocol (Protocol *protocol)
 Set reference to "this" as the previous protocol on the protocol provided as argument. More...
 
bool store (int from)
 
bool store (uint32 from)
 
bool store (longlong from)
 
bool store (ulonglong from)
 
bool store_tiny (longlong from)
 
bool store_short (longlong from)
 
bool store_long (longlong from)
 
bool store_longlong (longlong from, bool unsigned_flag)
 
bool store (const char *from, const CHARSET_INFO *fromcs)
 Send \0 end terminated string. More...
 
bool store (String *str)
 
bool store (const LEX_STRING &s, const CHARSET_INFO *cs)
 

Additional Inherited Members

- Public Types inherited from Protocol
enum  enum_protocol_type {
  PROTOCOL_TEXT = 0 , PROTOCOL_BINARY = 1 , PROTOCOL_LOCAL = 2 , PROTOCOL_ERROR = 3 ,
  PROTOCOL_PLUGIN = 4
}
 Enum used by type() to specify the protocol type. More...
 
enum  { SEND_NUM_ROWS = 1 , SEND_DEFAULTS = 2 , SEND_EOF = 4 }
 Flags available to alter the way the messages are sent to the client. More...
 
using Type = BaseProtocol::Type
 
- Static Public Member Functions inherited from Protocol
static Type get_default ()
 
static Type get_by_name (const std::string &name)
 Returns type of the protocol by its name. More...
 
static std::string to_string (const Type &type)
 
static uint16_t get_default_port (Type type)
 Returns default port for the selected protocol. More...
 
- Public Attributes inherited from Protocol_classic
bool bad_packet
 
- Protected Member Functions inherited from Protocol_classic
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. More...
 
bool send_eof (uint server_status, uint statement_warn_count) override
 A default implementation of "EOF" packet response to the client. More...
 
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. More...
 
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. More...
 
- Protected Attributes inherited from Protocol_classic
THDm_thd
 
Stringpacket
 
String convert
 
uint field_pos
 
bool send_metadata
 
enum enum_field_typesfield_types
 
uint count
 
uint field_count
 
uint sending_flags
 
ulong input_packet_length
 
ucharinput_raw_packet
 
const CHARSET_INFOresult_cs
 

Detailed Description

Class used for the old (MySQL 4.0 protocol).

Constructor & Destructor Documentation

◆ Protocol_text() [1/2]

Protocol_text::Protocol_text ( )
default

◆ Protocol_text() [2/2]

Protocol_text::Protocol_text ( THD thd_arg)
inline

Member Function Documentation

◆ send_parameters()

bool Protocol_text::send_parameters ( List< Item_param > *  parameters,
bool   
)
overridevirtual

Sets OUT-parameters to user variables.

Parameters
parametersList of PS/SP parameters (both input and output).
Returns
Error status.
Return values
falseSuccess.
trueError.

Implements Protocol.

Reimplemented in Protocol_binary.

◆ start_row()

void Protocol_text::start_row ( )
overridevirtual

Result set sending functions.

Server uses following schema to send result: ... sending metadata ... | start_result_metadata(...) | start_row() | send_field_metadata(...) | end_row() ... same for each field sent ... | end_result_metadata(...) | ... sending result ... | start_row(...) | store_xxx(...) ... store_xxx(..) is called for each field ... | end_row(...) ... same for each row, until all rows are sent ... | send_ok/eof/error(...) However, a protocol implementation might use different schema. For example, Protocol_callback ignores start/end_row when metadata is being sent.

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_date()

bool Protocol_text::store_date ( const MYSQL_TIME time)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_datetime()

bool Protocol_text::store_datetime ( const MYSQL_TIME time,
uint  precision 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_decimal()

bool Protocol_text::store_decimal ( const my_decimal d,
uint  prec,
uint  dec 
)
finalvirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_double()

bool Protocol_text::store_double ( double  from,
uint32  decimals,
uint32  zerofill 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_float()

bool Protocol_text::store_float ( float  nr,
uint32  decimals,
uint32  zerofill 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_long()

bool Protocol_text::store_long ( longlong  from,
uint32  zerofill 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_longlong()

bool Protocol_text::store_longlong ( longlong  from,
bool  unsigned_flag,
uint32  zerofill 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_null()

bool Protocol_text::store_null ( )
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_short()

bool Protocol_text::store_short ( longlong  from,
uint32  zerofill 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_time()

bool Protocol_text::store_time ( const MYSQL_TIME time,
uint  precision 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ store_tiny()

bool Protocol_text::store_tiny ( longlong  from,
uint32  zerofill 
)
overridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.

◆ type()

enum enum_protocol_type Protocol_text::type ( ) const
inlineoverridevirtual

Implements Protocol.

Reimplemented in Protocol_binary.


The documentation for this class was generated from the following files: