1#ifndef SQL_COMMON_INCLUDED
2#define SQL_COMMON_INCLUDED
52#ifdef IMPORT_UNKNOWN_SQLSTATE
98struct st_mysql_trace_info;
128#define MYSQL_EXTENSION_PTR(H) \
129 ((MYSQL_EXTENSION *)((H)->extension \
131 : ((H)->extension = mysql_extension_init(H))))
133#define ASYNC_DATA(M) \
134 (NULL != (M) ? (MYSQL_EXTENSION_PTR(M)->mysql_async_context) : NULL)
160#define MAX_AUTHENTICATION_FACTOR 3
196#define MYSQL_OPTIONS_EXTENSION_PTR(H, what) \
197 ((H)->options.extension ? (H)->options.extension->what : nullptr)
203 const unsigned char *header,
size_t header_length,
204 const unsigned char *arg,
size_t arg_length,
207 unsigned int fields);
211 unsigned int field_count);
214#if !defined(MYSQL_SERVER) && !defined(MYSQL_COMPONENT)
219 int (*unbuffered_fetch)(
MYSQL *
mysql,
char **row);
222 int (*read_rows_from_cursor)(
MYSQL_STMT *stmt);
228 const unsigned char *header,
unsigned long header_length,
229 const unsigned char *arg,
unsigned long arg_length,
bool skip_check,
236 bool flush_all_results);
242#define simple_command(mysql, command, arg, length, skip_check) \
244 ? (*(mysql)->methods->advanced_command)(mysql, command, nullptr, 0, \
245 arg, length, skip_check, NULL) \
246 : (set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate), \
248#define simple_command_nonblocking(mysql, command, arg, length, skip_check, \
250 (*(mysql)->methods->advanced_command_nonblocking)( \
251 mysql, command, nullptr, 0, arg, length, skip_check, nullptr, error)
253#define stmt_command(mysql, command, arg, length, stmt) \
255 ? (*(mysql)->methods->advanced_command)(mysql, command, nullptr, 0, \
256 arg, length, 1, stmt) \
257 : (set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate), \
262 uint fields,
bool default_value,
263 uint server_capabilities);
265 unsigned long field_count,
266 unsigned int fields);
268 unsigned int fields);
276 const char *
filename,
const char *group);
278 const unsigned char *header,
size_t header_length,
279 const unsigned char *arg,
size_t arg_length,
283 bool *is_data_packet,
286 bool *is_data_packet);
291 const char *sqlstate,
const char *format, ...)
292 MY_ATTRIBUTE((format(printf, 4, 5)));
295 const
char *format, ...)
296 MY_ATTRIBUTE((format(printf, 4, 5)));
303 const
char *data_plugin, const
char *db);
318 unsigned long n_param_sets,
uchar **ret_data, ulong *ret_length,
319 uchar send_types_to_server,
bool send_named_params,
320 bool send_parameter_set_count,
bool send_parameter_count_when_zero);
326#define protocol_41(A) ((A)->server_capabilities & CLIENT_PROTOCOL_41)
331#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:97
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:895
#define SESSION_TRACK_END
End of enum_session_state_type.
Definition: mysql_com.h:1083
Definitions private to the server, used in the networking layer to notify specific events.
static MYSQL * mysql
Definition: mysqldump.cc:147
Definition: buf0block_hint.cc:30
Json_data_extension ext
Definition: backend.cc:52
Definition: instrumented_condition_variable.h:32
Definition: options.cc:57
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:3367
const char * unknown_sqlstate
Definition: client.cc:222
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:1216
void mysql_close_free(MYSQL *mysql)
Definition: client.cc:7537
void set_stmt_errmsg(MYSQL_STMT *stmt, NET *net)
Set statement error code, sqlstate, and error message from NET.
Definition: libmysql.cc:1237
void end_server(MYSQL *mysql)
Definition: client.cc:1895
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:393
bool libmysql_cleartext_plugin_enabled
Definition: client.cc:5552
bool fix_param_bind(MYSQL_BIND *param, uint idx)
Definition: bind_params.cc:465
bool mysql_reconnect(MYSQL *mysql)
Definition: client.cc:7206
int mysql_client_plugin_init()
Initializes the client plugin layer.
Definition: client_plugin.cc:336
#define MYSQL_EXTENSION_PTR(H)
Definition: sql_common.h:128
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:376
const char * cant_connect_sqlstate
Definition: client.cc:224
unsigned long cli_safe_read(MYSQL *mysql, bool *is_data_packet)
Read a packet from server.
Definition: client.cc:1318
MYSQL_RES * use_result(MYSQL *mysql)
Definition: client.cc:8302
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:1163
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:1330
void free_rows(MYSQL_DATA *cur)
Definition: client.cc:1322
void mysql_client_plugin_deinit()
Deinitializes the client plugin layer.
Definition: client_plugin.cc:376
unsigned long cli_safe_read_with_ok(MYSQL *mysql, bool parse_ok, bool *is_data_packet)
Read a packet from server.
Definition: client.cc:1185
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:362
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:6205
MYSQL_FIELD * unpack_fields(MYSQL *mysql, MYSQL_ROWS *data, MEM_ROOT *alloc, uint fields, bool default_value, uint server_capabilities)
Definition: client.cc:2497
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:5620
void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate)
Set the internal error message to mysql handler.
Definition: client.cc:345
#define MAX_AUTHENTICATION_FACTOR
Definition: sql_common.h:160
CHARSET_INFO * default_client_charset_info
Definition: client.cc:234
void free_old_query(MYSQL *mysql)
Definition: client.cc:1620
uchar * send_client_connect_attrs(MYSQL *mysql, uchar *buf)
Definition: client.cc:4104
const char * not_error_sqlstate
Definition: client.cc:223
MYSQL_EXTENSION * mysql_extension_init(MYSQL *)
Definition: client.cc:3346
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:1201
void mysql_close_free_options(MYSQL *mysql)
Definition: client.cc:7496
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:152
void mysql_extension_free(MYSQL_EXTENSION *)
Definition: client.cc:3378
struct st_mysql_client_plugin * mysql_client_builtins[]
Definition: client.cc:4072
void mysql_read_default_options(struct st_mysql_options *options, const char *filename, const char *group)
Definition: client.cc:2113
Definition: m_ctype.h:423
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:101
char ** names
Definition: sql_common.h:114
uint n_params
Definition: sql_common.h:113
struct MYSQL_ASYNC * mysql_async_context
Definition: sql_common.h:105
NET_SERVER * server_extn
Definition: sql_common.h:108
struct MYSQL_EXTENSION::@9 bind_info
struct st_mysql_trace_info * trace_data
Definition: sql_common.h:102
STATE_INFO state_change
Definition: sql_common.h:103
void * mcs_extn
Definition: sql_common.h:110
MYSQL_BIND * bind
Definition: sql_common.h:115
Definition: sql_common.h:199
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:226
MYSQL_ROW(* fetch_row)(MYSQL_RES *)
Definition: sql_common.h:209
enum net_async_status(* read_change_user_result_nonblocking)(MYSQL *mysql, ulong *res)
Definition: sql_common.h:238
bool(* read_query_result)(MYSQL *mysql)
Definition: sql_common.h:201
void(* fetch_lengths)(unsigned long *to, MYSQL_ROW column, unsigned int field_count)
Definition: sql_common.h:210
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:202
enum net_async_status(* read_rows_nonblocking)(MYSQL *mysql, MYSQL_FIELD *mysql_fields, unsigned int fields, MYSQL_DATA **result)
Definition: sql_common.h:231
void(* flush_use_result)(MYSQL *mysql, bool flush_all_results)
Definition: sql_common.h:212
enum net_async_status(* read_query_result_nonblocking)(MYSQL *mysql)
Definition: sql_common.h:225
enum net_async_status(* next_result_nonblocking)(MYSQL *mysql)
Definition: sql_common.h:237
int(* read_change_user_result)(MYSQL *mysql)
Definition: sql_common.h:213
enum net_async_status(* flush_use_result_nonblocking)(MYSQL *mysql, bool flush_all_results)
Definition: sql_common.h:235
Definition: plugin_auth_common.h:121
Definition: client.cc:4100
Definition: mysql_com_server.h:59
Definition: mysql_com.h:914
The structure is used to hold the state change information received from the server.
Definition: sql_common.h:76
LIST * head_node
head_node->data is a LEX_STRING which contains the variable name.
Definition: sql_common.h:78
LIST * current_node
Definition: sql_common.h:79
Store the change info received from the server in an array of linked lists with STATE_INFO_NODE eleme...
Definition: sql_common.h:86
STATE_INFO_NODE info_list[SESSION_TRACK_END+1]
Array of STATE_NODE_INFO elements (one per state type).
Definition: sql_common.h:88
Definition: sql_common.h:165
char * plugin_name
Definition: sql_common.h:166
char * password
Definition: sql_common.h:167
Definition: client_async_authentication.h:164
Definition: client_plugin.h:114
Definition: sql_common.h:170
unsigned int ssl_fips_mode
Definition: sql_common.h:184
bool get_server_public_key
Definition: sql_common.h:179
char * default_auth
Definition: sql_common.h:172
char * compression_algorithm
Definition: sql_common.h:186
long ssl_ctx_flags
Definition: sql_common.h:181
char * ssl_crl
Definition: sql_common.h:173
char * tls_version
Definition: sql_common.h:180
void * ssl_session_data
Definition: sql_common.h:192
bool connection_compressed
Definition: sql_common.h:189
char * plugin_dir
Definition: sql_common.h:171
unsigned int retry_count
Definition: sql_common.h:183
bool enable_cleartext_plugin
Definition: sql_common.h:178
char * tls_ciphersuites
Definition: sql_common.h:185
struct client_authentication_info client_auth_info[MAX_AUTHENTICATION_FACTOR]
Definition: sql_common.h:191
unsigned int total_configured_compression_algorithms
Definition: sql_common.h:187
char * server_public_key_path
Definition: sql_common.h:176
size_t connection_attributes_length
Definition: sql_common.h:177
struct My_hash * connection_attributes
Definition: sql_common.h:175
unsigned int ssl_mode
Definition: sql_common.h:182
char * tls_sni_servername
the session serialization to use
Definition: sql_common.h:193
char * ssl_crlpath
Definition: sql_common.h:174
char * load_data_dir
Definition: sql_common.h:190
unsigned int zstd_compression_level
Definition: sql_common.h:188
command
Definition: version_token.cc:280