You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
4.0 KiB
Go
188 lines
4.0 KiB
Go
package mysql
|
|
|
|
const (
|
|
MinProtocolVersion byte = 10
|
|
MaxPayloadLen int = 1<<24 - 1
|
|
TimeFormat string = "2006-01-02 15:04:05"
|
|
)
|
|
|
|
const (
|
|
OK_HEADER byte = 0x00
|
|
MORE_DATE_HEADER byte = 0x01
|
|
ERR_HEADER byte = 0xff
|
|
EOF_HEADER byte = 0xfe
|
|
LocalInFile_HEADER byte = 0xfb
|
|
|
|
CACHE_SHA2_FAST_AUTH byte = 0x03
|
|
CACHE_SHA2_FULL_AUTH byte = 0x04
|
|
)
|
|
|
|
const (
|
|
AUTH_MYSQL_OLD_PASSWORD = "mysql_old_password"
|
|
AUTH_NATIVE_PASSWORD = "mysql_native_password"
|
|
AUTH_CLEAR_PASSWORD = "mysql_clear_password"
|
|
AUTH_CACHING_SHA2_PASSWORD = "caching_sha2_password"
|
|
AUTH_SHA256_PASSWORD = "sha256_password"
|
|
)
|
|
|
|
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 (
|
|
// https://dev.mysql.com/doc/dev/mysql-server/latest/group__group__cs__capabilities__flags.html
|
|
|
|
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
|
|
CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS
|
|
CLIENT_SESSION_TRACK
|
|
CLIENT_DEPRECATE_EOF
|
|
CLIENT_OPTIONAL_RESULTSET_METADATA
|
|
CLIENT_ZSTD_COMPRESSION_ALGORITHM
|
|
CLIENT_QUERY_ATTRIBUTES
|
|
MULTI_FACTOR_AUTHENTICATION
|
|
CLIENT_CAPABILITY_EXTENSION
|
|
CLIENT_SSL_VERIFY_SERVER_CERT
|
|
CLIENT_REMEMBER_OPTIONS
|
|
)
|
|
|
|
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 (
|
|
MYSQL_TYPE_JSON byte = iota + 0xf5
|
|
MYSQL_TYPE_NEWDECIMAL
|
|
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"
|
|
)
|
|
|
|
const (
|
|
MYSQL_OPTION_MULTI_STATEMENTS_ON = iota
|
|
MYSQL_OPTION_MULTI_STATEMENTS_OFF
|
|
)
|