![]() |
MySQL 8.0.40
Source Code Documentation
|
Common definition between mysql server & client. More...
#include <stdbool.h>
#include <stdint.h>
#include "my_command.h"
#include "my_compress.h"
#include "my_io.h"
#include "mysql/components/services/bits/my_io_bits.h"
#include "mysql/udf_registration_types.h"
Go to the source code of this file.
Classes | |
struct | NET |
struct | rand_struct |
Macros | |
#define | SYSTEM_CHARSET_MBMAXLEN 3 |
#define | FILENAME_CHARSET_MBMAXLEN 5 |
#define | NAME_CHAR_LEN 64 |
Field/table name length. More... | |
#define | PARTITION_EXPR_CHAR_LEN 2048 |
Maximum expression length in chars . More... | |
#define | USERNAME_CHAR_LENGTH 32 |
#define | USERNAME_CHAR_LENGTH_STR "32" |
#define | NAME_LEN (NAME_CHAR_LEN * SYSTEM_CHARSET_MBMAXLEN) |
#define | USERNAME_LENGTH (USERNAME_CHAR_LENGTH * SYSTEM_CHARSET_MBMAXLEN) |
#define | CONNECT_STRING_MAXLEN 1024 |
#define | MYSQL_AUTODETECT_CHARSET_NAME "auto" |
#define | SERVER_VERSION_LENGTH 60 |
#define | SQLSTATE_LENGTH 5 |
#define | RELYING_PARTY_ID_LENGTH 255 |
#define | CHALLENGE_LENGTH 32 |
#define | MAX_AUTH_FACTORS 3 |
#define | TABLE_COMMENT_INLINE_MAXLEN 180 |
Maximum length of comments. More... | |
#define | TABLE_COMMENT_MAXLEN 2048 |
#define | COLUMN_COMMENT_MAXLEN 1024 |
#define | INDEX_COMMENT_MAXLEN 1024 |
#define | TABLE_PARTITION_COMMENT_MAXLEN 1024 |
#define | TABLESPACE_COMMENT_MAXLEN 2048 |
#define | MAX_PACKET_LENGTH (256L * 256L * 256L - 1) |
Maximum length of protocol packet. More... | |
#define | LOCAL_HOST "localhost" |
#define | LOCAL_HOST_NAMEDPIPE "." |
#define | FRM_GCOL_HEADER_SIZE 4 |
The length of the header part for each generated column in the .frm file. More... | |
#define | GENERATED_COLUMN_EXPRESSION_MAXLEN 65535 - FRM_GCOL_HEADER_SIZE |
Maximum length of the expression statement defined for generated columns. More... | |
#define | SCRAMBLE_LENGTH 20 |
Length of random string sent by server on handshake; this is also length of obfuscated password, received from client. More... | |
#define | AUTH_PLUGIN_DATA_PART_1_LENGTH 8 |
#define | SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH * 2 + 1) |
length of password stored in the db: new passwords are preceded with '*' More... | |
#define | NOT_NULL_FLAG 1 |
Field can't be NULL. More... | |
#define | PRI_KEY_FLAG 2 |
Field is part of a primary key. More... | |
#define | UNIQUE_KEY_FLAG 4 |
Field is part of a unique key. More... | |
#define | MULTIPLE_KEY_FLAG 8 |
Field is part of a key. More... | |
#define | BLOB_FLAG 16 |
Field is a blob. More... | |
#define | UNSIGNED_FLAG 32 |
Field is unsigned. More... | |
#define | ZEROFILL_FLAG 64 |
Field is zerofill. More... | |
#define | BINARY_FLAG 128 |
Field is binary More... | |
#define | ENUM_FLAG 256 |
field is an enum More... | |
#define | AUTO_INCREMENT_FLAG 512 |
field is a autoincrement field More... | |
#define | TIMESTAMP_FLAG 1024 |
Field is a timestamp. More... | |
#define | SET_FLAG 2048 |
field is a set More... | |
#define | NO_DEFAULT_VALUE_FLAG 4096 |
Field doesn't have default value. More... | |
#define | ON_UPDATE_NOW_FLAG 8192 |
Field is set to NOW on UPDATE. More... | |
#define | NUM_FLAG 32768 |
Field is num (for clients) More... | |
#define | PART_KEY_FLAG 16384 |
Intern; Part of some key. More... | |
#define | GROUP_FLAG 32768 |
Intern: Group field. More... | |
#define | UNIQUE_FLAG 65536 |
Intern: Used by sql_yacc. More... | |
#define | BINCMP_FLAG 131072 |
Intern: Used by sql_yacc. More... | |
#define | GET_FIXED_FIELDS_FLAG (1 << 18) |
Used to get fields in item tree . More... | |
#define | FIELD_IN_PART_FUNC_FLAG (1 << 19) |
Field part of partition func. More... | |
#define | FIELD_IN_ADD_INDEX (1 << 20) |
Intern: Field in TABLE object for new version of altered table, which participates in a newly added index. More... | |
#define | FIELD_IS_RENAMED (1 << 21) |
Intern: Field is being renamed. More... | |
#define | FIELD_FLAGS_STORAGE_MEDIA 22 |
Field storage media, bit 22-23. More... | |
#define | FIELD_FLAGS_STORAGE_MEDIA_MASK (3 << FIELD_FLAGS_STORAGE_MEDIA) |
#define | FIELD_FLAGS_COLUMN_FORMAT 24 |
Field column format, bit 24-25. More... | |
#define | FIELD_FLAGS_COLUMN_FORMAT_MASK (3 << FIELD_FLAGS_COLUMN_FORMAT) |
#define | FIELD_IS_DROPPED (1 << 26) |
Intern: Field is being dropped. More... | |
#define | EXPLICIT_NULL_FLAG (1 << 27) |
Field is explicitly specified as \ NULL by the user. More... | |
#define | NOT_SECONDARY_FLAG (1 << 29) |
Field will not be loaded in secondary engine. More... | |
#define | FIELD_IS_INVISIBLE (1 << 30) |
Field is explicitly marked as invisible by the user. More... | |
#define | REFRESH_GRANT 1 |
Refresh grant tables, FLUSH PRIVILEGES. More... | |
#define | REFRESH_LOG 2 |
Start on new log file, FLUSH LOGS. More... | |
#define | REFRESH_TABLES 4 |
close all tables, FLUSH TABLES More... | |
#define | REFRESH_HOSTS 8 |
Flush host cache, FLUSH HOSTS. More... | |
#define | REFRESH_STATUS 16 |
Flush status variables, FLUSH STATUS. More... | |
#define | REFRESH_THREADS 32 |
Flush thread cache. More... | |
#define | REFRESH_REPLICA 64 |
Reset master info and restart replica \ thread, RESET REPLICA. More... | |
#define | REFRESH_SLAVE REFRESH_REPLICA |
Reset master info and restart replica \ thread, RESET REPLICA. More... | |
#define | REFRESH_MASTER 128 |
Remove all bin logs in the index \ and truncate the index, RESET MASTER. More... | |
#define | REFRESH_ERROR_LOG 256 |
Rotate only the error log. More... | |
#define | REFRESH_ENGINE_LOG 512 |
Flush all storage engine logs. More... | |
#define | REFRESH_BINARY_LOG 1024 |
Flush the binary log. More... | |
#define | REFRESH_RELAY_LOG 2048 |
Flush the relay log. More... | |
#define | REFRESH_GENERAL_LOG 4096 |
Flush the general log. More... | |
#define | REFRESH_SLOW_LOG 8192 |
Flush the slow query log. More... | |
#define | REFRESH_READ_LOCK 16384 |
Lock tables for read. More... | |
#define | REFRESH_FAST 32768 |
Wait for an impending flush before closing the tables. More... | |
#define | REFRESH_USER_RESOURCES |
#define | REFRESH_FOR_EXPORT 0x100000L /** FLUSH TABLES ... FOR EXPORT */ |
#define | REFRESH_OPTIMIZER_COSTS 0x200000L /** FLUSH OPTIMIZER_COSTS */ |
#define | REFRESH_PERSIST 0x400000L /** RESET PERSIST */ |
#define | CLIENT_LONG_PASSWORD 1 |
Use the improved version of Old Password Authentication. More... | |
#define | CLIENT_FOUND_ROWS 2 |
Send found rows instead of affected rows in EOF_Packet. More... | |
#define | CLIENT_LONG_FLAG 4 |
Get all column flags. More... | |
#define | CLIENT_CONNECT_WITH_DB 8 |
Database (schema) name can be specified on connect in Handshake Response Packet. More... | |
#define | CLIENT_NO_SCHEMA 16 |
DEPRECATED: Don't allow database.table.column. More... | |
#define | CLIENT_COMPRESS 32 |
Compression protocol supported. More... | |
#define | CLIENT_ODBC 64 |
Special handling of ODBC behavior. More... | |
#define | CLIENT_LOCAL_FILES 128 |
Can use LOAD DATA LOCAL. More... | |
#define | CLIENT_IGNORE_SPACE 256 |
Ignore spaces before '('. More... | |
#define | CLIENT_PROTOCOL_41 512 |
New 4.1 protocol. More... | |
#define | CLIENT_INTERACTIVE 1024 |
This is an interactive client. More... | |
#define | CLIENT_SSL 2048 |
Use SSL encryption for the session. More... | |
#define | CLIENT_IGNORE_SIGPIPE 4096 |
Client only flag. More... | |
#define | CLIENT_TRANSACTIONS 8192 |
Client knows about transactions. More... | |
#define | CLIENT_RESERVED 16384 |
DEPRECATED: Old flag for 4.1 protocol More... | |
#define | CLIENT_RESERVED2 32768 |
DEPRECATED: Old flag for 4.1 authentication \ CLIENT_SECURE_CONNECTION. More... | |
#define | CLIENT_MULTI_STATEMENTS (1UL << 16) |
Enable/disable multi-stmt support. More... | |
#define | CLIENT_MULTI_RESULTS (1UL << 17) |
Enable/disable multi-results. More... | |
#define | CLIENT_PS_MULTI_RESULTS (1UL << 18) |
Multi-results and OUT parameters in PS-protocol. More... | |
#define | CLIENT_PLUGIN_AUTH (1UL << 19) |
Client supports plugin authentication. More... | |
#define | CLIENT_CONNECT_ATTRS (1UL << 20) |
Client supports connection attributes. More... | |
#define | CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA (1UL << 21) |
Enable authentication response packet to be larger than 255 bytes. More... | |
#define | CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (1UL << 22) |
Don't close the connection for a user account with expired password. More... | |
#define | CLIENT_SESSION_TRACK (1UL << 23) |
Capable of handling server state change information. More... | |
#define | CLIENT_DEPRECATE_EOF (1UL << 24) |
Client no longer needs EOF_Packet and will use OK_Packet instead. More... | |
#define | CLIENT_OPTIONAL_RESULTSET_METADATA (1UL << 25) |
The client can handle optional metadata information in the resultset. More... | |
#define | CLIENT_ZSTD_COMPRESSION_ALGORITHM (1UL << 26) |
Compression protocol extended to support zstd compression method. More... | |
#define | CLIENT_QUERY_ATTRIBUTES (1UL << 27) |
Support optional extension for query parameters into the COM_QUERY and COM_STMT_EXECUTE packets. More... | |
#define | MULTI_FACTOR_AUTHENTICATION (1UL << 28) |
Support Multi factor authentication. More... | |
#define | CLIENT_CAPABILITY_EXTENSION (1UL << 29) |
This flag will be reserved to extend the 32bit capabilities structure to 64bits. More... | |
#define | CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30) |
Verify server certificate. More... | |
#define | CLIENT_REMEMBER_OPTIONS (1UL << 31) |
Don't reset the options after an unsuccessful connect. More... | |
#define | CAN_CLIENT_COMPRESS CLIENT_COMPRESS |
a compatibility alias for CLIENT_COMPRESS More... | |
#define | CLIENT_ALL_FLAGS |
Gather all possible capabilities (flags) supported by the server. More... | |
#define | CLIENT_BASIC_FLAGS |
Switch off from CLIENT_ALL_FLAGS the flags that are optional and depending on build flags. More... | |
#define | SERVER_STATUS_CLEAR_SET |
Server status flags that must be cleared when starting execution of a new SQL statement. More... | |
#define | MYSQL_ERRMSG_SIZE 512 |
Max length of a error message. More... | |
#define | NET_READ_TIMEOUT 30 |
Timeout on read. More... | |
#define | NET_WRITE_TIMEOUT 60 |
Timeout on write. More... | |
#define | NET_WAIT_TIMEOUT 8 * 60 * 60 |
Wait for new query. More... | |
#define | ONLY_KILL_QUERY 1 |
Flag used by the parser. More... | |
#define | MYSQL_VIO struct Vio * |
#define | MAX_TINYINT_WIDTH 3 |
Max width for a TINY w.o. More... | |
#define | MAX_SMALLINT_WIDTH 5 |
Max width for a SHORT w.o. More... | |
#define | MAX_MEDIUMINT_WIDTH 8 |
Max width for a INT24 w.o. More... | |
#define | MAX_INT_WIDTH 10 |
Max width for a LONG w.o. More... | |
#define | MAX_BIGINT_WIDTH 20 |
Max width for a LONGLONG. More... | |
#define | MAX_CHAR_WIDTH 255 |
Max width for a CHAR column, in number of characters. More... | |
#define | MAX_BLOB_WIDTH 16777216 |
Default width for blob in bytes. More... | |
#define | NET_ERROR_UNSET 0 |
No error has occurred yet. More... | |
#define | NET_ERROR_SOCKET_RECOVERABLE 1 |
Socket still usable. More... | |
#define | NET_ERROR_SOCKET_UNUSABLE 2 |
Do not use the socket. More... | |
#define | NET_ERROR_SOCKET_NOT_READABLE 3 |
Try write and close socket. More... | |
#define | NET_ERROR_SOCKET_NOT_WRITABLE 4 |
Try read and close socket. More... | |
#define | packet_error (~(unsigned long)0) |
#define | CLIENT_MULTI_QUERIES CLIENT_MULTI_STATEMENTS |
#define | FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL |
#define | FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL |
#define | FIELD_TYPE_TINY MYSQL_TYPE_TINY |
#define | FIELD_TYPE_SHORT MYSQL_TYPE_SHORT |
#define | FIELD_TYPE_LONG MYSQL_TYPE_LONG |
#define | FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT |
#define | FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE |
#define | FIELD_TYPE_NULL MYSQL_TYPE_NULL |
#define | FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP |
#define | FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG |
#define | FIELD_TYPE_INT24 MYSQL_TYPE_INT24 |
#define | FIELD_TYPE_DATE MYSQL_TYPE_DATE |
#define | FIELD_TYPE_TIME MYSQL_TYPE_TIME |
#define | FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME |
#define | FIELD_TYPE_YEAR MYSQL_TYPE_YEAR |
#define | FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE |
#define | FIELD_TYPE_ENUM MYSQL_TYPE_ENUM |
#define | FIELD_TYPE_SET MYSQL_TYPE_SET |
#define | FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB |
#define | FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB |
#define | FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB |
#define | FIELD_TYPE_BLOB MYSQL_TYPE_BLOB |
#define | FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING |
#define | FIELD_TYPE_STRING MYSQL_TYPE_STRING |
#define | FIELD_TYPE_CHAR MYSQL_TYPE_TINY |
#define | FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM |
#define | FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY |
#define | FIELD_TYPE_BIT MYSQL_TYPE_BIT |
#define | MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0) |
#define | MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1) |
#define | MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2) |
#define | MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3) |
#define | SESSION_TRACK_BEGIN SESSION_TRACK_SYSTEM_VARIABLES |
start of enum_session_state_type More... | |
#define | SESSION_TRACK_END SESSION_TRACK_TRANSACTION_STATE |
End of enum_session_state_type. More... | |
#define | IS_SESSION_STATE_TYPE(T) (((int)(T) >= SESSION_TRACK_BEGIN) && ((T) <= SESSION_TRACK_END)) |
is T a valid session state type More... | |
#define | net_new_transaction(net) ((net)->pkt_nr = 0) |
#define | NET_HEADER_SIZE 4 |
standard header size More... | |
#define | COMP_HEADER_SIZE 3 |
compression header extra size More... | |
#define | NULL_LENGTH ((unsigned long)~0) |
For net_store_length() More... | |
#define | MYSQL_STMT_HEADER 4 |
#define | MYSQL_LONG_DATA_HEADER 6 |
Typedefs | |
typedef struct NET | NET |
Functions | |
bool | my_net_init (struct NET *net, MYSQL_VIO vio) |
void | my_net_local_init (struct NET *net) |
void | net_end (struct NET *net) |
void | net_clear (struct NET *net, bool check_buffer) |
Clear (reinitialize) the NET structure for a new command. More... | |
void | net_claim_memory_ownership (struct NET *net, bool claim) |
bool | net_realloc (struct NET *net, size_t length) |
Realloc the packet buffer. More... | |
bool | net_flush (struct NET *net) |
Flush write_buffer if not empty. More... | |
bool | my_net_write (struct NET *net, const unsigned char *packet, size_t len) |
Write a logical packet with packet header. More... | |
bool | net_write_command (struct NET *net, unsigned char command, const unsigned char *header, size_t head_len, const unsigned char *packet, size_t len) |
Send a command to the server. More... | |
bool | net_write_packet (struct NET *net, const unsigned char *packet, size_t length) |
Write a MySQL protocol packet to the network handler. More... | |
unsigned long | my_net_read (struct NET *net) |
Read a packet from the client/server and return it without the internal package header. More... | |
void | my_net_set_write_timeout (struct NET *net, unsigned int timeout) |
void | my_net_set_read_timeout (struct NET *net, unsigned int timeout) |
void | my_net_set_retry_count (struct NET *net, unsigned int retry_count) |
void | randominit (struct rand_struct *, unsigned long seed1, unsigned long seed2) |
double | my_rnd (struct rand_struct *) |
Generate random number. More... | |
void | create_random_string (char *to, unsigned int length, struct rand_struct *rand_st) |
void | hash_password (unsigned long *to, const char *password, unsigned int password_len) |
void | make_scrambled_password_323 (char *to, const char *password) |
void | scramble_323 (char *to, const char *message, const char *password) |
bool | check_scramble_323 (const unsigned char *reply, const char *message, unsigned long *salt) |
void | get_salt_from_password_323 (unsigned long *res, const char *password) |
void | make_password_from_salt_323 (char *to, const unsigned long *salt) |
void | make_scrambled_password (char *to, const char *password) |
void | scramble (char *to, const char *message, const char *password) |
Produce an obscure octet sequence from password and random string, received from the server. More... | |
bool | check_scramble (const unsigned char *reply, const char *message, const unsigned char *hash_stage2) |
void | get_salt_from_password (unsigned char *res, const char *password) |
void | make_password_from_salt (char *to, const unsigned char *hash_stage2) |
char * | octet2hex (char *to, const char *str, unsigned int len) |
bool | generate_sha256_scramble (unsigned char *dst, size_t dst_size, const char *src, size_t src_size, const char *rnd, size_t rnd_size) |
char * | get_tty_password (const char *opt_message) |
const char * | mysql_errno_to_sqlstate (unsigned int mysql_errno) |
bool | my_thread_init (void) |
Allocate thread specific memory for the thread, used by mysys and dbug. More... | |
void | my_thread_end (void) |
Deallocate memory used by the thread for book-keeping. More... | |
uint64_t | net_field_length_ll (unsigned char **packet) |
unsigned char * | net_store_length (unsigned char *pkg, unsigned long long length) |
unsigned int | net_length_size (unsigned long long num) |
unsigned int | net_field_length_size (const unsigned char *pos) |
length of buffer required to represent a length-encoded string give the length part of length encoded string. More... | |
Common definition between mysql server & client.
#define AUTH_PLUGIN_DATA_PART_1_LENGTH 8 |
#define CAN_CLIENT_COMPRESS CLIENT_COMPRESS |
a compatibility alias for CLIENT_COMPRESS
#define CHALLENGE_LENGTH 32 |
#define CLIENT_ALL_FLAGS |
Gather all possible capabilities (flags) supported by the server.
#define CLIENT_BASIC_FLAGS |
Switch off from CLIENT_ALL_FLAGS the flags that are optional and depending on build flags.
If any of the optional flags is supported by the build it will be switched on before sending to the client during the connection handshake.
#define COLUMN_COMMENT_MAXLEN 1024 |
#define CONNECT_STRING_MAXLEN 1024 |
#define FILENAME_CHARSET_MBMAXLEN 5 |
#define FRM_GCOL_HEADER_SIZE 4 |
The length of the header part for each generated column in the .frm file.
#define GENERATED_COLUMN_EXPRESSION_MAXLEN 65535 - FRM_GCOL_HEADER_SIZE |
Maximum length of the expression statement defined for generated columns.
#define INDEX_COMMENT_MAXLEN 1024 |
#define IS_SESSION_STATE_TYPE | ( | T | ) | (((int)(T) >= SESSION_TRACK_BEGIN) && ((T) <= SESSION_TRACK_END)) |
is T a valid session state type
#define LOCAL_HOST "localhost" |
#define LOCAL_HOST_NAMEDPIPE "." |
#define MAX_AUTH_FACTORS 3 |
#define MAX_BIGINT_WIDTH 20 |
Max width for a LONGLONG.
#define MAX_BLOB_WIDTH 16777216 |
Default width for blob in bytes.
#define MAX_CHAR_WIDTH 255 |
Max width for a CHAR column, in number of characters.
#define MAX_INT_WIDTH 10 |
Max width for a LONG w.o.
sign
#define MAX_MEDIUMINT_WIDTH 8 |
Max width for a INT24 w.o.
sign
Maximum length of protocol packet.
OK_Packet length limit also restricted to this value as any length greater than this value will have first byte of OK_Packet to be 254 thus does not provide a means to identify if this is OK_Packet or EOF_Packet.
#define MAX_SMALLINT_WIDTH 5 |
Max width for a SHORT w.o.
sign
#define MAX_TINYINT_WIDTH 3 |
Max width for a TINY w.o.
sign
#define MYSQL_AUTODETECT_CHARSET_NAME "auto" |
#define MYSQL_ERRMSG_SIZE 512 |
Max length of a error message.
Should be kept in sync with ERRMSGSIZE.
#define MYSQL_LONG_DATA_HEADER 6 |
#define MYSQL_STMT_HEADER 4 |
#define MYSQL_VIO struct Vio * |
#define NAME_CHAR_LEN 64 |
Field/table name length.
#define NAME_LEN (NAME_CHAR_LEN * SYSTEM_CHARSET_MBMAXLEN) |
#define NET_ERROR_SOCKET_NOT_READABLE 3 |
Try write and close socket.
#define NET_ERROR_SOCKET_NOT_WRITABLE 4 |
Try read and close socket.
#define NET_ERROR_SOCKET_RECOVERABLE 1 |
Socket still usable.
#define NET_ERROR_SOCKET_UNUSABLE 2 |
Do not use the socket.
#define NET_ERROR_UNSET 0 |
No error has occurred yet.
#define net_new_transaction | ( | net | ) | ((net)->pkt_nr = 0) |
#define NET_READ_TIMEOUT 30 |
Timeout on read.
#define NET_WAIT_TIMEOUT 8 * 60 * 60 |
Wait for new query.
#define NET_WRITE_TIMEOUT 60 |
Timeout on write.
#define NULL_LENGTH ((unsigned long)~0) |
For net_store_length()
#define ONLY_KILL_QUERY 1 |
Flag used by the parser.
Kill only the query and not the connection.
#define packet_error (~(unsigned long)0) |
#define PARTITION_EXPR_CHAR_LEN 2048 |
Maximum expression length in chars .
#define RELYING_PARTY_ID_LENGTH 255 |
#define SCRAMBLE_LENGTH 20 |
Length of random string sent by server on handshake; this is also length of obfuscated password, received from client.
#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH * 2 + 1) |
length of password stored in the db: new passwords are preceded with '*'
#define SERVER_STATUS_CLEAR_SET |
Server status flags that must be cleared when starting execution of a new SQL statement.
Flags from this set are only added to the current server status by the execution engine, but never removed – the execution engine expects them to disappear automagically by the next command.
#define SERVER_VERSION_LENGTH 60 |
#define SESSION_TRACK_BEGIN SESSION_TRACK_SYSTEM_VARIABLES |
start of enum_session_state_type
#define SESSION_TRACK_END SESSION_TRACK_TRANSACTION_STATE |
End of enum_session_state_type.
#define SQLSTATE_LENGTH 5 |
#define SYSTEM_CHARSET_MBMAXLEN 3 |
#define TABLE_COMMENT_INLINE_MAXLEN 180 |
Maximum length of comments.
pre 5.6: 60 characters
#define TABLE_COMMENT_MAXLEN 2048 |
#define TABLE_PARTITION_COMMENT_MAXLEN 1024 |
#define TABLESPACE_COMMENT_MAXLEN 2048 |
#define USERNAME_CHAR_LENGTH 32 |
#define USERNAME_CHAR_LENGTH_STR "32" |
#define USERNAME_LENGTH (USERNAME_CHAR_LENGTH * SYSTEM_CHARSET_MBMAXLEN) |
enum enum_cursor_type |
Type of state change information that the server can include in the Ok packet.
The status flags are a bit-field.
bool check_scramble | ( | const unsigned char * | reply, |
const char * | message, | ||
const unsigned char * | hash_stage2 | ||
) |
bool check_scramble_323 | ( | const unsigned char * | reply, |
const char * | message, | ||
unsigned long * | salt | ||
) |
void create_random_string | ( | char * | to, |
unsigned int | length, | ||
struct rand_struct * | rand_st | ||
) |
bool generate_sha256_scramble | ( | unsigned char * | dst, |
size_t | dst_size, | ||
const char * | src, | ||
size_t | src_size, | ||
const char * | rnd, | ||
size_t | rnd_size | ||
) |
void get_salt_from_password | ( | unsigned char * | res, |
const char * | password | ||
) |
void get_salt_from_password_323 | ( | unsigned long * | res, |
const char * | password | ||
) |
char * get_tty_password | ( | const char * | opt_message | ) |
void hash_password | ( | unsigned long * | to, |
const char * | password, | ||
unsigned int | password_len | ||
) |
void make_password_from_salt | ( | char * | to, |
const unsigned char * | hash_stage2 | ||
) |
void make_password_from_salt_323 | ( | char * | to, |
const unsigned long * | salt | ||
) |
void make_scrambled_password | ( | char * | to, |
const char * | password | ||
) |
void make_scrambled_password_323 | ( | char * | to, |
const char * | password | ||
) |
void my_net_local_init | ( | struct NET * | net | ) |
unsigned long my_net_read | ( | NET * | net | ) |
Read a packet from the client/server and return it without the internal package header.
If the packet is the first packet of a multi-packet packet (which is indicated by the length of the packet = 0xffffff) then all sub packets are read and concatenated.
If the packet was compressed, its uncompressed and the length of the uncompressed packet is returned.
void my_net_set_read_timeout | ( | struct NET * | net, |
unsigned int | timeout | ||
) |
void my_net_set_retry_count | ( | struct NET * | net, |
unsigned int | retry_count | ||
) |
void my_net_set_write_timeout | ( | struct NET * | net, |
unsigned int | timeout | ||
) |
Write a logical packet with packet header.
Format: Packet length (3 bytes), packet number (1 byte) When compression is used, a 3 byte compression length is added.
double my_rnd | ( | struct rand_struct * | rand_st | ) |
Generate random number.
[in,out] | rand_st | Structure used for number generation. |
Generated | pseudo random number. |
void my_thread_end | ( | void | ) |
Deallocate memory used by the thread for book-keeping.
bool my_thread_init | ( | void | ) |
Allocate thread specific memory for the thread, used by mysys and dbug.
false | ok |
true | Fatal error; mysys/dbug functions can't be used |
const char * mysql_errno_to_sqlstate | ( | unsigned int | mysql_errno | ) |
void net_claim_memory_ownership | ( | struct NET * | net, |
bool | claim | ||
) |
void net_clear | ( | NET * | net, |
bool | check_buffer | ||
) |
Clear (reinitialize) the NET structure for a new command.
net | NET handler |
check_buffer | Whether to check the socket buffer. |
void net_end | ( | struct NET * | net | ) |
|
inline |
unsigned int net_field_length_size | ( | const uchar * | pos | ) |
length of buffer required to represent a length-encoded string give the length part of length encoded string.
This function can be used before calling net_field_lenth/net_field_length_ll.
[in] | pos | Length information of length-encoded string |
bool net_flush | ( | struct NET * | net | ) |
Flush write_buffer if not empty.
unsigned int net_length_size | ( | unsigned long long | num | ) |
bool net_realloc | ( | struct NET * | net, |
size_t | length | ||
) |
Realloc the packet buffer.
unsigned char * net_store_length | ( | unsigned char * | pkg, |
unsigned long long | length | ||
) |
bool net_write_command | ( | NET * | net, |
uchar | command, | ||
const uchar * | header, | ||
size_t | head_len, | ||
const uchar * | packet, | ||
size_t | len | ||
) |
Send a command to the server.
The reason for having both header and packet is so that libmysql can easy add a header to a special command (like prepared statements) without having to re-alloc the string.
As the command is part of the first data packet, we have to do some data juggling to put the command in there, without having to create a new packet.
This function will split big packets into sub-packets if needed. (Each sub packet can only be 2^24 bytes)
net | NET handler |
command | Command in MySQL server (enum enum_server_command) |
header | Header to write after command |
head_len | Length of header |
packet | Query or parameter to query |
len | Length of packet |
0 | ok |
1 | error |
Write a MySQL protocol packet to the network handler.
net | NET handler. |
packet | The packet to write. |
length | Length of the packet. |
char * octet2hex | ( | char * | to, |
const char * | str, | ||
unsigned int | len | ||
) |
void randominit | ( | struct rand_struct * | , |
unsigned long | seed1, | ||
unsigned long | seed2 | ||
) |
void scramble | ( | char * | to, |
const char * | message, | ||
const char * | password | ||
) |
Produce an obscure octet sequence from password and random string, received from the server.
This sequence corresponds to the password, but password can not be easily restored from it. The sequence is then sent to the server for validation. Trailing zero is not stored in the buf as it is not needed. This function is used by client to create authenticated reply to the server's greeting.
[out] | to | store scrambled string here. The buf must be at least SHA1_HASH_SIZE bytes long. |
message | random message, must be exactly SCRAMBLE_LENGTH long and NULL-terminated. | |
password | users' password, NULL-terminated |
void scramble_323 | ( | char * | to, |
const char * | message, | ||
const char * | password | ||
) |