1#ifndef SQL_COMMON_INCLUDED
2#define SQL_COMMON_INCLUDED
50#ifdef IMPORT_UNKNOWN_SQLSTATE
96struct st_mysql_trace_info;
126#define MYSQL_EXTENSION_PTR(H) \
127 ((MYSQL_EXTENSION *)((H)->extension \
129 : ((H)->extension = mysql_extension_init(H))))
131#define ASYNC_DATA(M) \
132 (NULL != (M) ? (MYSQL_EXTENSION_PTR(M)->mysql_async_context) : NULL)
158#define MAX_AUTHENTICATION_FACTOR 3
197 const unsigned char *header,
size_t header_length,
198 const unsigned char *arg,
size_t arg_length,
201 unsigned int fields);
205 unsigned int field_count);
208#if !defined(MYSQL_SERVER) && !defined(MYSQL_COMPONENT)
213 int (*unbuffered_fetch)(
MYSQL *
mysql,
char **row);
216 int (*read_rows_from_cursor)(
MYSQL_STMT *stmt);
222 const unsigned char *header,
unsigned long header_length,
223 const unsigned char *arg,
unsigned long arg_length,
bool skip_check,
230 bool flush_all_results);
236#define simple_command(mysql, command, arg, length, skip_check) \
238 ? (*(mysql)->methods->advanced_command)(mysql, command, 0, 0, arg, \
239 length, skip_check, NULL) \
240 : (set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate), \
242#define simple_command_nonblocking(mysql, command, arg, length, skip_check, \
244 (*(mysql)->methods->advanced_command_nonblocking)( \
245 mysql, command, 0, 0, arg, length, skip_check, NULL, error)
247#define stmt_command(mysql, command, arg, length, stmt) \
249 ? (*(mysql)->methods->advanced_command)(mysql, command, 0, 0, arg, \
251 : (set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate), \
256 uint fields,
bool default_value,
257 uint server_capabilities);
259 unsigned long field_count,
260 unsigned int fields);
262 unsigned int fields);
270 const char *
filename,
const char *group);
272 const unsigned char *header,
size_t header_length,
273 const unsigned char *arg,
size_t arg_length,
277 bool *is_data_packet,
280 bool *is_data_packet);
285 const char *sqlstate,
const char *format, ...)
286 MY_ATTRIBUTE((format(printf, 4, 5)));
289 const
char *format, ...)
290 MY_ATTRIBUTE((format(printf, 4, 5)));
297 const
char *data_plugin, const
char *db);
312 unsigned long n_param_sets,
uchar **ret_data, ulong *ret_length,
313 uchar send_types_to_server,
bool send_named_params,
314 bool send_parameter_set_count,
bool send_parameter_count_when_zero);
320#define protocol_41(A) ((A)->server_capabilities & CLIENT_PROTOCOL_41)
325#define AUTH_NEXT_FACTOR_PACKETTYPE 2
Error messages for MySQL clients.
enum_server_command
A list of all MySQL protocol commands.
Definition: my_command.h:48
Header for compiler-dependent features.
Some integer typedefs for easier portability.
unsigned char uchar
Definition: my_inttypes.h:52
static const char * filepath
Definition: myisamlog.cc:94
static MYSQL mysql
Definition: mysql.cc:154
This file defines the client API to MySQL and also the ABI of the dynamically linked libmysqlclient.
char ** MYSQL_ROW
Definition: mysql.h:145
Common definition between mysql server & client.
#define MYSQL_VIO
Definition: mysql_com.h:894
#define SESSION_TRACK_END
End of enum_session_state_type.
Definition: mysql_com.h:1082
Definitions private to the server, used in the networking layer to notify specific events.
Definition: buf0block_hint.cc:30
Json_data_extension ext
Definition: backend.cc:51
Definition: instrumented_condition_variable.h:32
Definition: options.cc:49
const char * filename
Definition: pfs_example_component_population.cc:67
struct result result
Definition: result.h:34
net_async_status
Definition: plugin_auth_common.h:136
void mysql_extension_bind_free(MYSQL_EXTENSION *ext)
Definition: client.cc:3364
const char * unknown_sqlstate
Definition: client.cc:216
void set_stmt_extended_error(MYSQL_STMT *stmt, int errcode, const char *sqlstate, const char *format,...)
Set statement error code, sqlstate, and error message from given errcode and sqlstate.
Definition: libmysql.cc:1201
void mysql_close_free(MYSQL *mysql)
Definition: client.cc:7460
void set_stmt_errmsg(MYSQL_STMT *stmt, NET *net)
Set statement error code, sqlstate, and error message from NET.
Definition: libmysql.cc:1222
void end_server(MYSQL *mysql)
Definition: client.cc:1889
void set_mysql_extended_error(MYSQL *mysql, int errcode, const char *sqlstate, const char *format,...)
Set an error message on the client.
Definition: client.cc:387
bool libmysql_cleartext_plugin_enabled
Definition: client.cc:5476
bool fix_param_bind(MYSQL_BIND *param, uint idx)
Definition: bind_params.cc:408
bool mysql_reconnect(MYSQL *mysql)
Definition: client.cc:7129
int mysql_client_plugin_init()
Initializes the client plugin layer.
Definition: client_plugin.cc:320
#define MYSQL_EXTENSION_PTR(H)
Definition: sql_common.h:126
MYSQL_FIELD * cli_read_metadata(MYSQL *mysql, unsigned long field_count, unsigned int fields)
void mpvio_info(MYSQL_VIO vio, MYSQL_PLUGIN_VIO_INFO *info)
void net_clear_error(NET *net)
Clear possible error state of struct NET.
Definition: client.cc:370
const char * cant_connect_sqlstate
Definition: client.cc:218
unsigned long cli_safe_read(MYSQL *mysql, bool *is_data_packet)
Read a packet from server.
Definition: client.cc:1311
MYSQL_RES * use_result(MYSQL *mysql)
Definition: client.cc:8225
void read_ok_ex(MYSQL *mysql, unsigned long len)
enum net_async_status cli_safe_read_nonblocking(MYSQL *mysql, bool *is_data_packet, ulong *res)
Its a non blocking version of cli_safe_read.
Definition: client.cc:1156
bool cli_advanced_command(MYSQL *mysql, enum enum_server_command command, const unsigned char *header, size_t header_length, const unsigned char *arg, size_t arg_length, bool skip_check, MYSQL_STMT *stmt)
Definition: client.cc:1323
void free_rows(MYSQL_DATA *cur)
Definition: client.cc:1315
void mysql_client_plugin_deinit()
Deinitializes the client plugin layer.
Definition: client_plugin.cc:360
unsigned long cli_safe_read_with_ok(MYSQL *mysql, bool parse_ok, bool *is_data_packet)
Read a packet from server.
Definition: client.cc:1178
bool mysql_int_serialize_param_data(NET *net, unsigned int param_count, MYSQL_BIND *params, const char **names, unsigned long n_param_sets, uchar **ret_data, ulong *ret_length, uchar send_types_to_server, bool send_named_params, bool send_parameter_set_count, bool send_parameter_count_when_zero)
Serialize the query parameters.
Definition: bind_params.cc:311
int is_file_or_dir_world_writable(const char *filepath)
Check if a file/dir is world-writable (only on non-Windows platforms)
Definition: my_path_permissions.cc:43
MYSQL_FIELD * cli_read_metadata_ex(MYSQL *mysql, MEM_ROOT *alloc, unsigned long field_count, unsigned int fields)
MYSQL * connect_helper(mysql_async_connect *ctx)
Definition: client.cc:6128
MYSQL_FIELD * unpack_fields(MYSQL *mysql, MYSQL_ROWS *data, MEM_ROOT *alloc, uint fields, bool default_value, uint server_capabilities)
Definition: client.cc:2492
int run_plugin_auth(MYSQL *mysql, char *data, uint data_len, const char *data_plugin, const char *db)
Client side of the plugin driver authentication.
Definition: client.cc:5544
void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate)
Set the internal error message to mysql handler.
Definition: client.cc:339
#define MAX_AUTHENTICATION_FACTOR
Definition: sql_common.h:158
CHARSET_INFO * default_client_charset_info
Definition: client.cc:228
void free_old_query(MYSQL *mysql)
Definition: client.cc:1614
uchar * send_client_connect_attrs(MYSQL *mysql, uchar *buf)
Definition: client.cc:4116
const char * not_error_sqlstate
Definition: client.cc:217
MYSQL_EXTENSION * mysql_extension_init(MYSQL *)
Definition: client.cc:3343
void set_stmt_error(MYSQL_STMT *stmt, int errcode, const char *sqlstate)
Set statement error code, sqlstate, and error message from given errcode and sqlstate.
Definition: libmysql.cc:1186
void mysql_close_free_options(MYSQL *mysql)
Definition: client.cc:7419
void mysql_extension_set_server_extn(MYSQL *mysql, NET_SERVER *extn)
Sets the MYSQL_EXTENSION::server_extn attribute by the use of NET_SERVER which contains information a...
Definition: sql_common.h:150
void mysql_extension_free(MYSQL_EXTENSION *)
Definition: client.cc:3375
struct st_mysql_client_plugin * mysql_client_builtins[]
Definition: client.cc:4087
void mysql_read_default_options(struct st_mysql_options *options, const char *filename, const char *group)
Definition: client.cc:2107
Definition: m_ctype.h:385
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83
Definition: mysql_async.h:235
Definition: sql_common.h:99
char ** names
Definition: sql_common.h:112
uint n_params
Definition: sql_common.h:111
struct MYSQL_ASYNC * mysql_async_context
Definition: sql_common.h:103
NET_SERVER * server_extn
Definition: sql_common.h:106
struct st_mysql_trace_info * trace_data
Definition: sql_common.h:100
STATE_INFO state_change
Definition: sql_common.h:101
void * mcs_extn
Definition: sql_common.h:108
MYSQL_BIND * bind
Definition: sql_common.h:113
struct MYSQL_EXTENSION::@8 bind_info
Definition: sql_common.h:193
enum net_async_status(* advanced_command_nonblocking)(MYSQL *mysql, enum enum_server_command command, const unsigned char *header, unsigned long header_length, const unsigned char *arg, unsigned long arg_length, bool skip_check, MYSQL_STMT *stmt, bool *error)
Definition: sql_common.h:220
MYSQL_ROW(* fetch_row)(MYSQL_RES *)
Definition: sql_common.h:203
enum net_async_status(* read_change_user_result_nonblocking)(MYSQL *mysql, ulong *res)
Definition: sql_common.h:232
bool(* read_query_result)(MYSQL *mysql)
Definition: sql_common.h:195
void(* fetch_lengths)(unsigned long *to, MYSQL_ROW column, unsigned int field_count)
Definition: sql_common.h:204
bool(* advanced_command)(MYSQL *mysql, enum enum_server_command command, const unsigned char *header, size_t header_length, const unsigned char *arg, size_t arg_length, bool skip_check, MYSQL_STMT *stmt)
Definition: sql_common.h:196
enum net_async_status(* read_rows_nonblocking)(MYSQL *mysql, MYSQL_FIELD *mysql_fields, unsigned int fields, MYSQL_DATA **result)
Definition: sql_common.h:225
void(* flush_use_result)(MYSQL *mysql, bool flush_all_results)
Definition: sql_common.h:206
enum net_async_status(* read_query_result_nonblocking)(MYSQL *mysql)
Definition: sql_common.h:219
enum net_async_status(* next_result_nonblocking)(MYSQL *mysql)
Definition: sql_common.h:231
int(* read_change_user_result)(MYSQL *mysql)
Definition: sql_common.h:207
enum net_async_status(* flush_use_result_nonblocking)(MYSQL *mysql, bool flush_all_results)
Definition: sql_common.h:229
Definition: plugin_auth_common.h:121
Definition: client.cc:4112
Definition: mysql_com_server.h:59
Definition: mysql_com.h:913
The structure is used to hold the state change information received from the server.
Definition: sql_common.h:74
LIST * head_node
head_node->data is a LEX_STRING which contains the variable name.
Definition: sql_common.h:76
LIST * current_node
Definition: sql_common.h:77
Store the change info received from the server in an array of linked lists with STATE_INFO_NODE eleme...
Definition: sql_common.h:84
STATE_INFO_NODE info_list[SESSION_TRACK_END+1]
Array of STATE_NODE_INFO elements (one per state type).
Definition: sql_common.h:86
Definition: sql_common.h:163
char * plugin_name
Definition: sql_common.h:164
char * password
Definition: sql_common.h:165
Definition: client_async_authentication.h:162
Definition: client_plugin.h:112
Definition: sql_common.h:168
unsigned int ssl_fips_mode
Definition: sql_common.h:182
bool get_server_public_key
Definition: sql_common.h:177
char * default_auth
Definition: sql_common.h:170
char * compression_algorithm
Definition: sql_common.h:184
long ssl_ctx_flags
Definition: sql_common.h:179
char * ssl_crl
Definition: sql_common.h:171
char * tls_version
Definition: sql_common.h:178
void * ssl_session_data
Definition: sql_common.h:190
bool connection_compressed
Definition: sql_common.h:187
char * plugin_dir
Definition: sql_common.h:169
unsigned int retry_count
Definition: sql_common.h:181
bool enable_cleartext_plugin
Definition: sql_common.h:176
char * tls_ciphersuites
Definition: sql_common.h:183
struct client_authentication_info client_auth_info[MAX_AUTHENTICATION_FACTOR]
Definition: sql_common.h:189
unsigned int total_configured_compression_algorithms
Definition: sql_common.h:185
char * server_public_key_path
Definition: sql_common.h:174
size_t connection_attributes_length
Definition: sql_common.h:175
struct My_hash * connection_attributes
Definition: sql_common.h:173
unsigned int ssl_mode
Definition: sql_common.h:180
char * ssl_crlpath
Definition: sql_common.h:172
char * load_data_dir
Definition: sql_common.h:188
unsigned int zstd_compression_level
Definition: sql_common.h:186
unsigned int uint
Definition: uca9-dump.cc:75
command
Definition: version_token.cc:280