2016-06-16 09:15:56 +00:00
|
|
|
package mysql
|
|
|
|
|
|
|
|
const (
|
|
|
|
MinProtocolVersion byte = 10
|
|
|
|
MaxPayloadLen int = 1<<24 - 1
|
|
|
|
TimeFormat string = "2006-01-02 15:04:05"
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
OK_HEADER byte = 0x00
|
2019-01-01 08:57:46 +00:00
|
|
|
MORE_DATE_HEADER byte = 0x01
|
2016-06-16 09:15:56 +00:00
|
|
|
ERR_HEADER byte = 0xff
|
|
|
|
EOF_HEADER byte = 0xfe
|
|
|
|
LocalInFile_HEADER byte = 0xfb
|
2019-01-01 08:57:46 +00:00
|
|
|
|
|
|
|
CACHE_SHA2_FAST_AUTH byte = 0x03
|
|
|
|
CACHE_SHA2_FULL_AUTH byte = 0x04
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
2021-06-24 18:19:37 +00:00
|
|
|
AUTH_MYSQL_OLD_PASSWORD = "mysql_old_password"
|
|
|
|
AUTH_NATIVE_PASSWORD = "mysql_native_password"
|
2019-01-01 08:57:46 +00:00
|
|
|
AUTH_CACHING_SHA2_PASSWORD = "caching_sha2_password"
|
2021-06-24 18:19:37 +00:00
|
|
|
AUTH_SHA256_PASSWORD = "sha256_password"
|
2016-06-16 09:15:56 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
SERVER_STATUS_IN_TRANS uint16 = 0x0001
|
|
|
|
SERVER_STATUS_AUTOCOMMIT uint16 = 0x0002
|
|
|
|
SERVER_MORE_RESULTS_EXISTS uint16 = 0x0008
|
|
|
|
SERVER_STATUS_NO_GOOD_INDEX_USED uint16 = 0x0010
|
|
|
|
SERVER_STATUS_NO_INDEX_USED uint16 = 0x0020
|
|
|
|
SERVER_STATUS_CURSOR_EXISTS uint16 = 0x0040
|
|
|
|
SERVER_STATUS_LAST_ROW_SEND uint16 = 0x0080
|
|
|
|
SERVER_STATUS_DB_DROPPED uint16 = 0x0100
|
|
|
|
SERVER_STATUS_NO_BACKSLASH_ESCAPED uint16 = 0x0200
|
|
|
|
SERVER_STATUS_METADATA_CHANGED uint16 = 0x0400
|
|
|
|
SERVER_QUERY_WAS_SLOW uint16 = 0x0800
|
|
|
|
SERVER_PS_OUT_PARAMS uint16 = 0x1000
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
COM_SLEEP byte = iota
|
|
|
|
COM_QUIT
|
|
|
|
COM_INIT_DB
|
|
|
|
COM_QUERY
|
|
|
|
COM_FIELD_LIST
|
|
|
|
COM_CREATE_DB
|
|
|
|
COM_DROP_DB
|
|
|
|
COM_REFRESH
|
|
|
|
COM_SHUTDOWN
|
|
|
|
COM_STATISTICS
|
|
|
|
COM_PROCESS_INFO
|
|
|
|
COM_CONNECT
|
|
|
|
COM_PROCESS_KILL
|
|
|
|
COM_DEBUG
|
|
|
|
COM_PING
|
|
|
|
COM_TIME
|
|
|
|
COM_DELAYED_INSERT
|
|
|
|
COM_CHANGE_USER
|
|
|
|
COM_BINLOG_DUMP
|
|
|
|
COM_TABLE_DUMP
|
|
|
|
COM_CONNECT_OUT
|
|
|
|
COM_REGISTER_SLAVE
|
|
|
|
COM_STMT_PREPARE
|
|
|
|
COM_STMT_EXECUTE
|
|
|
|
COM_STMT_SEND_LONG_DATA
|
|
|
|
COM_STMT_CLOSE
|
|
|
|
COM_STMT_RESET
|
|
|
|
COM_SET_OPTION
|
|
|
|
COM_STMT_FETCH
|
|
|
|
COM_DAEMON
|
|
|
|
COM_BINLOG_DUMP_GTID
|
|
|
|
COM_RESET_CONNECTION
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
CLIENT_LONG_PASSWORD uint32 = 1 << iota
|
|
|
|
CLIENT_FOUND_ROWS
|
|
|
|
CLIENT_LONG_FLAG
|
|
|
|
CLIENT_CONNECT_WITH_DB
|
|
|
|
CLIENT_NO_SCHEMA
|
|
|
|
CLIENT_COMPRESS
|
|
|
|
CLIENT_ODBC
|
|
|
|
CLIENT_LOCAL_FILES
|
|
|
|
CLIENT_IGNORE_SPACE
|
|
|
|
CLIENT_PROTOCOL_41
|
|
|
|
CLIENT_INTERACTIVE
|
|
|
|
CLIENT_SSL
|
|
|
|
CLIENT_IGNORE_SIGPIPE
|
|
|
|
CLIENT_TRANSACTIONS
|
|
|
|
CLIENT_RESERVED
|
|
|
|
CLIENT_SECURE_CONNECTION
|
|
|
|
CLIENT_MULTI_STATEMENTS
|
|
|
|
CLIENT_MULTI_RESULTS
|
|
|
|
CLIENT_PS_MULTI_RESULTS
|
|
|
|
CLIENT_PLUGIN_AUTH
|
|
|
|
CLIENT_CONNECT_ATTRS
|
|
|
|
CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
MYSQL_TYPE_DECIMAL byte = iota
|
|
|
|
MYSQL_TYPE_TINY
|
|
|
|
MYSQL_TYPE_SHORT
|
|
|
|
MYSQL_TYPE_LONG
|
|
|
|
MYSQL_TYPE_FLOAT
|
|
|
|
MYSQL_TYPE_DOUBLE
|
|
|
|
MYSQL_TYPE_NULL
|
|
|
|
MYSQL_TYPE_TIMESTAMP
|
|
|
|
MYSQL_TYPE_LONGLONG
|
|
|
|
MYSQL_TYPE_INT24
|
|
|
|
MYSQL_TYPE_DATE
|
|
|
|
MYSQL_TYPE_TIME
|
|
|
|
MYSQL_TYPE_DATETIME
|
|
|
|
MYSQL_TYPE_YEAR
|
|
|
|
MYSQL_TYPE_NEWDATE
|
|
|
|
MYSQL_TYPE_VARCHAR
|
|
|
|
MYSQL_TYPE_BIT
|
|
|
|
|
|
|
|
//mysql 5.6
|
|
|
|
MYSQL_TYPE_TIMESTAMP2
|
|
|
|
MYSQL_TYPE_DATETIME2
|
|
|
|
MYSQL_TYPE_TIME2
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
2017-02-12 11:13:54 +00:00
|
|
|
MYSQL_TYPE_JSON byte = iota + 0xf5
|
|
|
|
MYSQL_TYPE_NEWDECIMAL
|
2016-06-16 09:15:56 +00:00
|
|
|
MYSQL_TYPE_ENUM
|
|
|
|
MYSQL_TYPE_SET
|
|
|
|
MYSQL_TYPE_TINY_BLOB
|
|
|
|
MYSQL_TYPE_MEDIUM_BLOB
|
|
|
|
MYSQL_TYPE_LONG_BLOB
|
|
|
|
MYSQL_TYPE_BLOB
|
|
|
|
MYSQL_TYPE_VAR_STRING
|
|
|
|
MYSQL_TYPE_STRING
|
|
|
|
MYSQL_TYPE_GEOMETRY
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
NOT_NULL_FLAG = 1
|
|
|
|
PRI_KEY_FLAG = 2
|
|
|
|
UNIQUE_KEY_FLAG = 4
|
|
|
|
BLOB_FLAG = 16
|
|
|
|
UNSIGNED_FLAG = 32
|
|
|
|
ZEROFILL_FLAG = 64
|
|
|
|
BINARY_FLAG = 128
|
|
|
|
ENUM_FLAG = 256
|
|
|
|
AUTO_INCREMENT_FLAG = 512
|
|
|
|
TIMESTAMP_FLAG = 1024
|
|
|
|
SET_FLAG = 2048
|
|
|
|
NUM_FLAG = 32768
|
|
|
|
PART_KEY_FLAG = 16384
|
|
|
|
GROUP_FLAG = 32768
|
|
|
|
UNIQUE_FLAG = 65536
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
DEFAULT_CHARSET = "utf8"
|
|
|
|
DEFAULT_COLLATION_ID uint8 = 33
|
|
|
|
DEFAULT_COLLATION_NAME string = "utf8_general_ci"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Like vitess, use flavor for different MySQL versions,
|
|
|
|
const (
|
|
|
|
MySQLFlavor = "mysql"
|
|
|
|
MariaDBFlavor = "mariadb"
|
|
|
|
)
|