[go: up one dir, main page]

mysqlproto

package module
v0.0.0-...-71d8293 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2021 License: MIT Imports: 8 Imported by: 2

README

mysqlproto-go

Build Status GoDoc

Implementation of MySQL protocol

Documentation

Overview

https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeV10

Index

Constants

View Source
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
	CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS
	CLIENT_SESSION_TRACK
	CLIENT_DEPRECATE_EOF
)

https://dev.mysql.com/doc/internals/en/capability-flags.html

View Source
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_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
)

https://dev.mysql.com/doc/internals/en/command-phase.html

View Source
const (
	ER_HASHCHK uint16 = iota + 1000
	ER_NISAMCHK
	ER_NO
	ER_YES
	ER_CANT_CREATE_FILE
	ER_CANT_CREATE_TABLE
	ER_CANT_CREATE_DB
	ER_DB_CREATE_EXISTS
	ER_DB_DROP_EXISTS
	ER_DB_DROP_DELETE
	ER_DB_DROP_RMDIR
	ER_CANT_DELETE_FILE
	ER_CANT_FIND_SYSTEM_REC
	ER_CANT_GET_STAT
	ER_CANT_GET_WD
	ER_CANT_LOCK
	ER_CANT_OPEN_FILE
	ER_FILE_NOT_FOUND
	ER_CANT_READ_DIR
	ER_CANT_SET_WD
	ER_CHECKREAD
	ER_DISK_FULL
	ER_DUP_KEY
	ER_ERROR_ON_CLOSE
	ER_ERROR_ON_READ
	ER_ERROR_ON_RENAME
	ER_ERROR_ON_WRITE
	ER_FILE_USED
	ER_FILSORT_ABORT
	ER_FORM_NOT_FOUND
	ER_GET_ERRNO
	ER_ILLEGAL_HA
	ER_KEY_NOT_FOUND
	ER_NOT_FORM_FILE
	ER_NOT_KEYFILE
	ER_OLD_KEYFILE
	ER_OPEN_AS_READONLY
	ER_OUTOFMEMORY
	ER_OUT_OF_SORTMEMORY
	ER_UNEXPECTED_EOF
	ER_CON_COUNT_ERROR
	ER_OUT_OF_RESOURCES
	ER_BAD_HOST_ERROR
	ER_HANDSHAKE_ERROR
	ER_DBACCESS_DENIED_ERROR
	ER_ACCESS_DENIED_ERROR
	ER_NO_DB_ERROR
	ER_UNKNOWN_COM_ERROR
	ER_BAD_NULL_ERROR
	ER_BAD_DB_ERROR
	ER_TABLE_EXISTS_ERROR
	ER_BAD_TABLE_ERROR
	ER_NON_UNIQ_ERROR
	ER_SERVER_SHUTDOWN
	ER_BAD_FIELD_ERROR
	ER_WRONG_FIELD_WITH_GROUP
	ER_WRONG_GROUP_FIELD
	ER_WRONG_SUM_SELECT
	ER_WRONG_VALUE_COUNT
	ER_TOO_LONG_IDENT
	ER_DUP_FIELDNAME
	ER_DUP_KEYNAME
	ER_DUP_ENTRY
	ER_WRONG_FIELD_SPEC
	ER_PARSE_ERROR
	ER_EMPTY_QUERY
	ER_NONUNIQ_TABLE
	ER_INVALID_DEFAULT
	ER_MULTIPLE_PRI_KEY
	ER_TOO_MANY_KEYS
	ER_TOO_MANY_KEY_PARTS
	ER_TOO_LONG_KEY
	ER_KEY_COLUMN_DOES_NOT_EXITS
	ER_BLOB_USED_AS_KEY
	ER_TOO_BIG_FIELDLENGTH
	ER_WRONG_AUTO_KEY
	ER_READY
	ER_NORMAL_SHUTDOWN
	ER_GOT_SIGNAL
	ER_SHUTDOWN_COMPLETE
	ER_FORCING_CLOSE
	ER_IPSOCK_ERROR
	ER_NO_SUCH_INDEX
	ER_WRONG_FIELD_TERMINATORS
	ER_BLOBS_AND_NO_TERMINATED
	ER_TEXTFILE_NOT_READABLE
	ER_FILE_EXISTS_ERROR
	ER_LOAD_INFO
	ER_ALTER_INFO
	ER_WRONG_SUB_KEY
	ER_CANT_REMOVE_ALL_FIELDS
	ER_CANT_DROP_FIELD_OR_KEY
	ER_INSERT_INFO
	ER_UPDATE_TABLE_USED
	ER_NO_SUCH_THREAD
	ER_KILL_DENIED_ERROR
	ER_NO_TABLES_USED
	ER_TOO_BIG_SET
	ER_NO_UNIQUE_LOGFILE
	ER_TABLE_NOT_LOCKED_FOR_WRITE
	ER_TABLE_NOT_LOCKED
	ER_BLOB_CANT_HAVE_DEFAULT
	ER_WRONG_DB_NAME
	ER_WRONG_TABLE_NAME
	ER_TOO_BIG_SELECT
	ER_UNKNOWN_ERROR
	ER_UNKNOWN_PROCEDURE
	ER_WRONG_PARAMCOUNT_TO_PROCEDURE
	ER_WRONG_PARAMETERS_TO_PROCEDURE
	ER_UNKNOWN_TABLE
	ER_FIELD_SPECIFIED_TWICE
	ER_INVALID_GROUP_FUNC_USE
	ER_UNSUPPORTED_EXTENSION
	ER_TABLE_MUST_HAVE_COLUMNS
	ER_RECORD_FILE_FULL
	ER_UNKNOWN_CHARACTER_SET
	ER_TOO_MANY_TABLES
	ER_TOO_MANY_FIELDS
	ER_TOO_BIG_ROWSIZE
	ER_STACK_OVERRUN
	ER_WRONG_OUTER_JOIN
	ER_NULL_COLUMN_IN_INDEX
	ER_CANT_FIND_UDF
	ER_CANT_INITIALIZE_UDF
	ER_UDF_NO_PATHS
	ER_UDF_EXISTS
	ER_CANT_OPEN_LIBRARY
	ER_CANT_FIND_DL_ENTRY
	ER_FUNCTION_NOT_DEFINED
	ER_HOST_IS_BLOCKED
	ER_HOST_NOT_PRIVILEGED
	ER_PASSWORD_ANONYMOUS_USER
	ER_PASSWORD_NOT_ALLOWED
	ER_PASSWORD_NO_MATCH
	ER_UPDATE_INFO
	ER_CANT_CREATE_THREAD
	ER_WRONG_VALUE_COUNT_ON_ROW
	ER_CANT_REOPEN_TABLE
	ER_INVALID_USE_OF_NULL
	ER_REGEXP_ERROR
	ER_MIX_OF_GROUP_FUNC_AND_FIELDS
	ER_NONEXISTING_GRANT
	ER_TABLEACCESS_DENIED_ERROR
	ER_COLUMNACCESS_DENIED_ERROR
	ER_ILLEGAL_GRANT_FOR_TABLE
	ER_GRANT_WRONG_HOST_OR_USER
	ER_NO_SUCH_TABLE
	ER_NONEXISTING_TABLE_GRANT
	ER_NOT_ALLOWED_COMMAND
	ER_SYNTAX_ERROR
	ER_UNUSED1
	ER_UNUSED2
	ER_ABORTING_CONNECTION
	ER_NET_PACKET_TOO_LARGE
	ER_NET_READ_ERROR_FROM_PIPE
	ER_NET_FCNTL_ERROR
	ER_NET_PACKETS_OUT_OF_ORDER
	ER_NET_UNCOMPRESS_ERROR
	ER_NET_READ_ERROR
	ER_NET_READ_INTERRUPTED
	ER_NET_ERROR_ON_WRITE
	ER_NET_WRITE_INTERRUPTED
	ER_TOO_LONG_STRING
	ER_TABLE_CANT_HANDLE_BLOB
	ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
	ER_UNUSED3
	ER_WRONG_COLUMN_NAME
	ER_WRONG_KEY_COLUMN
	ER_WRONG_MRG_TABLE
	ER_DUP_UNIQUE
	ER_BLOB_KEY_WITHOUT_LENGTH
	ER_PRIMARY_CANT_HAVE_NULL
	ER_TOO_MANY_ROWS
	ER_REQUIRES_PRIMARY_KEY
	ER_NO_RAID_COMPILED
	ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
	ER_KEY_DOES_NOT_EXITS
	ER_CHECK_NO_SUCH_TABLE
	ER_CHECK_NOT_IMPLEMENTED
	ER_CANT_DO_THIS_DURING_AN_TRANSACTION
	ER_ERROR_DURING_COMMIT
	ER_ERROR_DURING_ROLLBACK
	ER_ERROR_DURING_FLUSH_LOGS
	ER_ERROR_DURING_CHECKPOINT
	ER_NEW_ABORTING_CONNECTION
	ER_DUMP_NOT_IMPLEMENTED
	ER_FLUSH_MASTER_BINLOG_CLOSED
	ER_INDEX_REBUILD
	ER_MASTER
	ER_MASTER_NET_READ
	ER_MASTER_NET_WRITE
	ER_FT_MATCHING_KEY_NOT_FOUND
	ER_LOCK_OR_ACTIVE_TRANSACTION
	ER_UNKNOWN_SYSTEM_VARIABLE
	ER_CRASHED_ON_USAGE
	ER_CRASHED_ON_REPAIR
	ER_WARNING_NOT_COMPLETE_ROLLBACK
	ER_TRANS_CACHE_FULL
	ER_SLAVE_MUST_STOP
	ER_SLAVE_NOT_RUNNING
	ER_BAD_SLAVE
	ER_MASTER_INFO
	ER_SLAVE_THREAD
	ER_TOO_MANY_USER_CONNECTIONS
	ER_SET_CONSTANTS_ONLY
	ER_LOCK_WAIT_TIMEOUT
	ER_LOCK_TABLE_FULL
	ER_READ_ONLY_TRANSACTION
	ER_DROP_DB_WITH_READ_LOCK
	ER_CREATE_DB_WITH_READ_LOCK
	ER_WRONG_ARGUMENTS
	ER_NO_PERMISSION_TO_CREATE_USER
	ER_UNION_TABLES_IN_DIFFERENT_DIR
	ER_LOCK_DEADLOCK
	ER_TABLE_CANT_HANDLE_FT
	ER_CANNOT_ADD_FOREIGN
	ER_NO_REFERENCED_ROW
	ER_ROW_IS_REFERENCED
	ER_CONNECT_TO_MASTER
	ER_QUERY_ON_MASTER
	ER_ERROR_WHEN_EXECUTING_COMMAND
	ER_WRONG_USAGE
	ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
	ER_CANT_UPDATE_WITH_READLOCK
	ER_MIXING_NOT_ALLOWED
	ER_DUP_ARGUMENT
	ER_USER_LIMIT_REACHED
	ER_SPECIFIC_ACCESS_DENIED_ERROR
	ER_LOCAL_VARIABLE
	ER_GLOBAL_VARIABLE
	ER_NO_DEFAULT
	ER_WRONG_VALUE_FOR_VAR
	ER_WRONG_TYPE_FOR_VAR
	ER_VAR_CANT_BE_READ
	ER_CANT_USE_OPTION_HERE
	ER_NOT_SUPPORTED_YET
	ER_MASTER_FATAL_ERROR_READING_BINLOG
	ER_SLAVE_IGNORED_TABLE
	ER_INCORRECT_GLOBAL_LOCAL_VAR
	ER_WRONG_FK_DEF
	ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
	ER_OPERAND_COLUMNS
	ER_SUBQUERY_NO_1_ROW
	ER_UNKNOWN_STMT_HANDLER
	ER_CORRUPT_HELP_DB
	ER_CYCLIC_REFERENCE
	ER_AUTO_CONVERT
	ER_ILLEGAL_REFERENCE
	ER_DERIVED_MUST_HAVE_ALIAS
	ER_SELECT_REDUCED
	ER_TABLENAME_NOT_ALLOWED_HERE
	ER_NOT_SUPPORTED_AUTH_MODE
	ER_SPATIAL_CANT_HAVE_NULL
	ER_COLLATION_CHARSET_MISMATCH
	ER_SLAVE_WAS_RUNNING
	ER_SLAVE_WAS_NOT_RUNNING
	ER_TOO_BIG_FOR_UNCOMPRESS
	ER_ZLIB_Z_MEM_ERROR
	ER_ZLIB_Z_BUF_ERROR
	ER_ZLIB_Z_DATA_ERROR
	ER_CUT_VALUE_GROUP_CONCAT
	ER_WARN_TOO_FEW_RECORDS
	ER_WARN_TOO_MANY_RECORDS
	ER_WARN_NULL_TO_NOTNULL
	ER_WARN_DATA_OUT_OF_RANGE
	WARN_DATA_TRUNCATED
	ER_WARN_USING_OTHER_HANDLER
	ER_CANT_AGGREGATE_2COLLATIONS
	ER_DROP_USER
	ER_REVOKE_GRANTS
	ER_CANT_AGGREGATE_3COLLATIONS
	ER_CANT_AGGREGATE_NCOLLATIONS
	ER_VARIABLE_IS_NOT_STRUCT
	ER_UNKNOWN_COLLATION
	ER_SLAVE_IGNORED_SSL_PARAMS
	ER_SERVER_IS_IN_SECURE_AUTH_MODE
	ER_WARN_FIELD_RESOLVED
	ER_BAD_SLAVE_UNTIL_COND
	ER_MISSING_SKIP_SLAVE
	ER_UNTIL_COND_IGNORED
	ER_WRONG_NAME_FOR_INDEX
	ER_WRONG_NAME_FOR_CATALOG
	ER_WARN_QC_RESIZE
	ER_BAD_FT_COLUMN
	ER_UNKNOWN_KEY_CACHE
	ER_WARN_HOSTNAME_WONT_WORK
	ER_UNKNOWN_STORAGE_ENGINE
	ER_WARN_DEPRECATED_SYNTAX
	ER_NON_UPDATABLE_TABLE
	ER_FEATURE_DISABLED
	ER_OPTION_PREVENTS_STATEMENT
	ER_DUPLICATED_VALUE_IN_TYPE
	ER_TRUNCATED_WRONG_VALUE
	ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
	ER_INVALID_ON_UPDATE
	ER_UNSUPPORTED_PS
	ER_GET_ERRMSG
	ER_GET_TEMPORARY_ERRMSG
	ER_UNKNOWN_TIME_ZONE
	ER_WARN_INVALID_TIMESTAMP
	ER_INVALID_CHARACTER_STRING
	ER_WARN_ALLOWED_PACKET_OVERFLOWED
	ER_CONFLICTING_DECLARATIONS
	ER_SP_NO_RECURSIVE_CREATE
	ER_SP_ALREADY_EXISTS
	ER_SP_DOES_NOT_EXIST
	ER_SP_DROP_FAILED
	ER_SP_STORE_FAILED
	ER_SP_LILABEL_MISMATCH
	ER_SP_LABEL_REDEFINE
	ER_SP_LABEL_MISMATCH
	ER_SP_UNINIT_VAR
	ER_SP_BADSELECT
	ER_SP_BADRETURN
	ER_SP_BADSTATEMENT
	ER_UPDATE_LOG_DEPRECATED_IGNORED
	ER_UPDATE_LOG_DEPRECATED_TRANSLATED
	ER_QUERY_INTERRUPTED
	ER_SP_WRONG_NO_OF_ARGS
	ER_SP_COND_MISMATCH
	ER_SP_NORETURN
	ER_SP_NORETURNEND
	ER_SP_BAD_CURSOR_QUERY
	ER_SP_BAD_CURSOR_SELECT
	ER_SP_CURSOR_MISMATCH
	ER_SP_CURSOR_ALREADY_OPEN
	ER_SP_CURSOR_NOT_OPEN
	ER_SP_UNDECLARED_VAR
	ER_SP_WRONG_NO_OF_FETCH_ARGS
	ER_SP_FETCH_NO_DATA
	ER_SP_DUP_PARAM
	ER_SP_DUP_VAR
	ER_SP_DUP_COND
	ER_SP_DUP_CURS
	ER_SP_CANT_ALTER
	ER_SP_SUBSELECT_NYI
	ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
	ER_SP_VARCOND_AFTER_CURSHNDLR
	ER_SP_CURSOR_AFTER_HANDLER
	ER_SP_CASE_NOT_FOUND
	ER_FPARSER_TOO_BIG_FILE
	ER_FPARSER_BAD_HEADER
	ER_FPARSER_EOF_IN_COMMENT
	ER_FPARSER_ERROR_IN_PARAMETER
	ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
	ER_VIEW_NO_EXPLAIN
	ER_FRM_UNKNOWN_TYPE
	ER_WRONG_OBJECT
	ER_NONUPDATEABLE_COLUMN
	ER_VIEW_SELECT_DERIVED_UNUSED
	ER_VIEW_SELECT_CLAUSE
	ER_VIEW_SELECT_VARIABLE
	ER_VIEW_SELECT_TMPTABLE
	ER_VIEW_WRONG_LIST
	ER_WARN_VIEW_MERGE
	ER_WARN_VIEW_WITHOUT_KEY
	ER_VIEW_INVALID
	ER_SP_NO_DROP_SP
	ER_SP_GOTO_IN_HNDLR
	ER_TRG_ALREADY_EXISTS
	ER_TRG_DOES_NOT_EXIST
	ER_TRG_ON_VIEW_OR_TEMP_TABLE
	ER_TRG_CANT_CHANGE_ROW
	ER_TRG_NO_SUCH_ROW_IN_TRG
	ER_NO_DEFAULT_FOR_FIELD
	ER_DIVISION_BY_ZERO
	ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
	ER_ILLEGAL_VALUE_FOR_TYPE
	ER_VIEW_NONUPD_CHECK
	ER_VIEW_CHECK_FAILED
	ER_PROCACCESS_DENIED_ERROR
	ER_RELAY_LOG_FAIL
	ER_PASSWD_LENGTH
	ER_UNKNOWN_TARGET_BINLOG
	ER_IO_ERR_LOG_INDEX_READ
	ER_BINLOG_PURGE_PROHIBITED
	ER_FSEEK_FAIL
	ER_BINLOG_PURGE_FATAL_ERR
	ER_LOG_IN_USE
	ER_LOG_PURGE_UNKNOWN_ERR
	ER_RELAY_LOG_INIT
	ER_NO_BINARY_LOGGING
	ER_RESERVED_SYNTAX
	ER_WSAS_FAILED
	ER_DIFF_GROUPS_PROC
	ER_NO_GROUP_FOR_PROC
	ER_ORDER_WITH_PROC
	ER_LOGGING_PROHIBIT_CHANGING_OF
	ER_NO_FILE_MAPPING
	ER_WRONG_MAGIC
	ER_PS_MANY_PARAM
	ER_KEY_PART_0
	ER_VIEW_CHECKSUM
	ER_VIEW_MULTIUPDATE
	ER_VIEW_NO_INSERT_FIELD_LIST
	ER_VIEW_DELETE_MERGE_VIEW
	ER_CANNOT_USER
	ER_XAER_NOTA
	ER_XAER_INVAL
	ER_XAER_RMFAIL
	ER_XAER_OUTSIDE
	ER_XAER_RMERR
	ER_XA_RBROLLBACK
	ER_NONEXISTING_PROC_GRANT
	ER_PROC_AUTO_GRANT_FAIL
	ER_PROC_AUTO_REVOKE_FAIL
	ER_DATA_TOO_LONG
	ER_SP_BAD_SQLSTATE
	ER_STARTUP
	ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
	ER_CANT_CREATE_USER_WITH_GRANT
	ER_WRONG_VALUE_FOR_TYPE
	ER_TABLE_DEF_CHANGED
	ER_SP_DUP_HANDLER
	ER_SP_NOT_VAR_ARG
	ER_SP_NO_RETSET
	ER_CANT_CREATE_GEOMETRY_OBJECT
	ER_FAILED_ROUTINE_BREAK_BINLOG
	ER_BINLOG_UNSAFE_ROUTINE
	ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
	ER_EXEC_STMT_WITH_OPEN_CURSOR
	ER_STMT_HAS_NO_OPEN_CURSOR
	ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
	ER_NO_DEFAULT_FOR_VIEW_FIELD
	ER_SP_NO_RECURSION
	ER_TOO_BIG_SCALE
	ER_TOO_BIG_PRECISION
	ER_M_BIGGER_THAN_D
	ER_WRONG_LOCK_OF_SYSTEM_TABLE
	ER_CONNECT_TO_FOREIGN_DATA_SOURCE
	ER_QUERY_ON_FOREIGN_DATA_SOURCE
	ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
	ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
	ER_FOREIGN_DATA_STRING_INVALID
	ER_CANT_CREATE_FEDERATED_TABLE
	ER_TRG_IN_WRONG_SCHEMA
	ER_STACK_OVERRUN_NEED_MORE
	ER_TOO_LONG_BODY
	ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
	ER_TOO_BIG_DISPLAYWIDTH
	ER_XAER_DUPID
	ER_DATETIME_FUNCTION_OVERFLOW
	ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
	ER_VIEW_PREVENT_UPDATE
	ER_PS_NO_RECURSION
	ER_SP_CANT_SET_AUTOCOMMIT
	ER_MALFORMED_DEFINER
	ER_VIEW_FRM_NO_USER
	ER_VIEW_OTHER_USER
	ER_NO_SUCH_USER
	ER_FORBID_SCHEMA_CHANGE
	ER_ROW_IS_REFERENCED_2
	ER_NO_REFERENCED_ROW_2
	ER_SP_BAD_VAR_SHADOW
	ER_TRG_NO_DEFINER
	ER_OLD_FILE_FORMAT
	ER_SP_RECURSION_LIMIT
	ER_SP_PROC_TABLE_CORRUPT
	ER_SP_WRONG_NAME
	ER_TABLE_NEEDS_UPGRADE
	ER_SP_NO_AGGREGATE
	ER_MAX_PREPARED_STMT_COUNT_REACHED
	ER_VIEW_RECURSIVE
	ER_NON_GROUPING_FIELD_USED
	ER_TABLE_CANT_HANDLE_SPKEYS
	ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
	ER_REMOVED_SPACES
	ER_AUTOINC_READ_FAILED
	ER_USERNAME
	ER_HOSTNAME
	ER_WRONG_STRING_LENGTH
	ER_NON_INSERTABLE_TABLE
	ER_ADMIN_WRONG_MRG_TABLE
	ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
	ER_NAME_BECOMES_EMPTY
	ER_AMBIGUOUS_FIELD_TERM
	ER_FOREIGN_SERVER_EXISTS
	ER_FOREIGN_SERVER_DOESNT_EXIST
	ER_ILLEGAL_HA_CREATE_OPTION
	ER_PARTITION_REQUIRES_VALUES_ERROR
	ER_PARTITION_WRONG_VALUES_ERROR
	ER_PARTITION_MAXVALUE_ERROR
	ER_PARTITION_SUBPARTITION_ERROR
	ER_PARTITION_SUBPART_MIX_ERROR
	ER_PARTITION_WRONG_NO_PART_ERROR
	ER_PARTITION_WRONG_NO_SUBPART_ERROR
	ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
	ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
	ER_FIELD_NOT_FOUND_PART_ERROR
	ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
	ER_INCONSISTENT_PARTITION_INFO_ERROR
	ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
	ER_PARTITIONS_MUST_BE_DEFINED_ERROR
	ER_RANGE_NOT_INCREASING_ERROR
	ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
	ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
	ER_PARTITION_ENTRY_ERROR
	ER_MIX_HANDLER_ERROR
	ER_PARTITION_NOT_DEFINED_ERROR
	ER_TOO_MANY_PARTITIONS_ERROR
	ER_SUBPARTITION_ERROR
	ER_CANT_CREATE_HANDLER_FILE
	ER_BLOB_FIELD_IN_PART_FUNC_ERROR
	ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
	ER_NO_PARTS_ERROR
	ER_PARTITION_MGMT_ON_NONPARTITIONED
	ER_FOREIGN_KEY_ON_PARTITIONED
	ER_DROP_PARTITION_NON_EXISTENT
	ER_DROP_LAST_PARTITION
	ER_COALESCE_ONLY_ON_HASH_PARTITION
	ER_REORG_HASH_ONLY_ON_SAME_NO
	ER_REORG_NO_PARAM_ERROR
	ER_ONLY_ON_RANGE_LIST_PARTITION
	ER_ADD_PARTITION_SUBPART_ERROR
	ER_ADD_PARTITION_NO_NEW_PARTITION
	ER_COALESCE_PARTITION_NO_PARTITION
	ER_REORG_PARTITION_NOT_EXIST
	ER_SAME_NAME_PARTITION
	ER_NO_BINLOG_ERROR
	ER_CONSECUTIVE_REORG_PARTITIONS
	ER_REORG_OUTSIDE_RANGE
	ER_PARTITION_FUNCTION_FAILURE
	ER_PART_STATE_ERROR
	ER_LIMITED_PART_RANGE
	ER_PLUGIN_IS_NOT_LOADED
	ER_WRONG_VALUE
	ER_NO_PARTITION_FOR_GIVEN_VALUE
	ER_FILEGROUP_OPTION_ONLY_ONCE
	ER_CREATE_FILEGROUP_FAILED
	ER_DROP_FILEGROUP_FAILED
	ER_TABLESPACE_AUTO_EXTEND_ERROR
	ER_WRONG_SIZE_NUMBER
	ER_SIZE_OVERFLOW_ERROR
	ER_ALTER_FILEGROUP_FAILED
	ER_BINLOG_ROW_LOGGING_FAILED
	ER_BINLOG_ROW_WRONG_TABLE_DEF
	ER_BINLOG_ROW_RBR_TO_SBR
	ER_EVENT_ALREADY_EXISTS
	ER_EVENT_STORE_FAILED
	ER_EVENT_DOES_NOT_EXIST
	ER_EVENT_CANT_ALTER
	ER_EVENT_DROP_FAILED
	ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
	ER_EVENT_ENDS_BEFORE_STARTS
	ER_EVENT_EXEC_TIME_IN_THE_PAST
	ER_EVENT_OPEN_TABLE_FAILED
	ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
	ER_OBSOLETE_COL_COUNT_DOESNT_MATCH_CORRUPTED
	ER_OBSOLETE_CANNOT_LOAD_FROM_TABLE
	ER_EVENT_CANNOT_DELETE
	ER_EVENT_COMPILE_ERROR
	ER_EVENT_SAME_NAME
	ER_EVENT_DATA_TOO_LONG
	ER_DROP_INDEX_FK
	ER_WARN_DEPRECATED_SYNTAX_WITH_VER
	ER_CANT_WRITE_LOCK_LOG_TABLE
	ER_CANT_LOCK_LOG_TABLE
	ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED
	ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
	ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
	ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
	ER_NDB_CANT_SWITCH_BINLOG_FORMAT
	ER_PARTITION_NO_TEMPORARY
	ER_PARTITION_CONST_DOMAIN_ERROR
	ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
	ER_DDL_LOG_ERROR
	ER_NULL_IN_VALUES_LESS_THAN
	ER_WRONG_PARTITION_NAME
	ER_CANT_CHANGE_TX_CHARACTERISTICS
	ER_DUP_ENTRY_AUTOINCREMENT_CASE
	ER_EVENT_MODIFY_QUEUE_ERROR
	ER_EVENT_SET_VAR_ERROR
	ER_PARTITION_MERGE_ERROR
	ER_CANT_ACTIVATE_LOG
	ER_RBR_NOT_AVAILABLE
	ER_BASE64_DECODE_ERROR
	ER_EVENT_RECURSION_FORBIDDEN
	ER_EVENTS_DB_ERROR
	ER_ONLY_INTEGERS_ALLOWED
	ER_UNSUPORTED_LOG_ENGINE
	ER_BAD_LOG_STATEMENT
	ER_CANT_RENAME_LOG_TABLE
	ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
	ER_WRONG_PARAMETERS_TO_NATIVE_FCT
	ER_WRONG_PARAMETERS_TO_STORED_FCT
	ER_NATIVE_FCT_NAME_COLLISION
	ER_DUP_ENTRY_WITH_KEY_NAME
	ER_BINLOG_PURGE_EMFILE
	ER_EVENT_CANNOT_CREATE_IN_THE_PAST
	ER_EVENT_CANNOT_ALTER_IN_THE_PAST
	ER_SLAVE_INCIDENT
	ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
	ER_BINLOG_UNSAFE_STATEMENT
	ER_SLAVE_FATAL_ERROR
	ER_SLAVE_RELAY_LOG_READ_FAILURE
	ER_SLAVE_RELAY_LOG_WRITE_FAILURE
	ER_SLAVE_CREATE_EVENT_FAILURE
	ER_SLAVE_MASTER_COM_FAILURE
	ER_BINLOG_LOGGING_IMPOSSIBLE
	ER_VIEW_NO_CREATION_CTX
	ER_VIEW_INVALID_CREATION_CTX
	ER_SR_INVALID_CREATION_CTX
	ER_TRG_CORRUPTED_FILE
	ER_TRG_NO_CREATION_CTX
	ER_TRG_INVALID_CREATION_CTX
	ER_EVENT_INVALID_CREATION_CTX
	ER_TRG_CANT_OPEN_TABLE
	ER_CANT_CREATE_SROUTINE
	ER_NEVER_USED
	ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
	ER_SLAVE_CORRUPT_EVENT
	ER_LOAD_DATA_INVALID_COLUMN_UNUSED
	ER_LOG_PURGE_NO_FILE
	ER_XA_RBTIMEOUT
	ER_XA_RBDEADLOCK
	ER_NEED_REPREPARE
	ER_DELAYED_NOT_SUPPORTED
	WARN_NO_MASTER_INFO
	WARN_OPTION_IGNORED
	ER_PLUGIN_DELETE_BUILTIN
	WARN_PLUGIN_BUSY
	ER_VARIABLE_IS_READONLY
	ER_WARN_ENGINE_TRANSACTION_ROLLBACK
	ER_SLAVE_HEARTBEAT_FAILURE
	ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE
	ER_NDB_REPLICATION_SCHEMA_ERROR
	ER_CONFLICT_FN_PARSE_ERROR
	ER_EXCEPTIONS_WRITE_ERROR
	ER_TOO_LONG_TABLE_COMMENT
	ER_TOO_LONG_FIELD_COMMENT
	ER_FUNC_INEXISTENT_NAME_COLLISION
	ER_DATABASE_NAME
	ER_TABLE_NAME
	ER_PARTITION_NAME
	ER_SUBPARTITION_NAME
	ER_TEMPORARY_NAME
	ER_RENAMED_NAME
	ER_TOO_MANY_CONCURRENT_TRXS
	WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
	ER_DEBUG_SYNC_TIMEOUT
	ER_DEBUG_SYNC_HIT_LIMIT
	ER_DUP_SIGNAL_SET
	ER_SIGNAL_WARN
	ER_SIGNAL_NOT_FOUND
	ER_SIGNAL_EXCEPTION
	ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER
	ER_SIGNAL_BAD_CONDITION_TYPE
	WARN_COND_ITEM_TRUNCATED
	ER_COND_ITEM_TOO_LONG
	ER_UNKNOWN_LOCALE
	ER_SLAVE_IGNORE_SERVER_IDS
	ER_QUERY_CACHE_DISABLED
	ER_SAME_NAME_PARTITION_FIELD
	ER_PARTITION_COLUMN_LIST_ERROR
	ER_WRONG_TYPE_COLUMN_VALUE_ERROR
	ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR
	ER_MAXVALUE_IN_VALUES_IN
	ER_TOO_MANY_VALUES_ERROR
	ER_ROW_SINGLE_PARTITION_FIELD_ERROR
	ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
	ER_PARTITION_FIELDS_TOO_LONG
	ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE
	ER_BINLOG_ROW_MODE_AND_STMT_ENGINE
	ER_BINLOG_UNSAFE_AND_STMT_ENGINE
	ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE
	ER_BINLOG_STMT_MODE_AND_ROW_ENGINE
	ER_BINLOG_ROW_INJECTION_AND_STMT_MODE
	ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE
	ER_BINLOG_UNSAFE_LIMIT
	ER_UNUSED4
	ER_BINLOG_UNSAFE_SYSTEM_TABLE
	ER_BINLOG_UNSAFE_AUTOINC_COLUMNS
	ER_BINLOG_UNSAFE_UDF
	ER_BINLOG_UNSAFE_SYSTEM_VARIABLE
	ER_BINLOG_UNSAFE_SYSTEM_FUNCTION
	ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS
	ER_MESSAGE_AND_STATEMENT
	ER_SLAVE_CONVERSION_FAILED
	ER_SLAVE_CANT_CREATE_CONVERSION
	ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT
	ER_PATH_LENGTH
	ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT
	ER_WRONG_NATIVE_TABLE_STRUCTURE
	ER_WRONG_PERFSCHEMA_USAGE
	ER_WARN_I_S_SKIPPED_TABLE
	ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT
	ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT
	ER_SPATIAL_MUST_HAVE_GEOM_COL
	ER_TOO_LONG_INDEX_COMMENT
	ER_LOCK_ABORTED
	ER_DATA_OUT_OF_RANGE
	ER_WRONG_SPVAR_TYPE_IN_LIMIT
	ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE
	ER_BINLOG_UNSAFE_MIXED_STATEMENT
	ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN
	ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN
	ER_FAILED_READ_FROM_PAR_FILE
	ER_VALUES_IS_NOT_INT_TYPE_ERROR
	ER_ACCESS_DENIED_NO_PASSWORD_ERROR
	ER_SET_PASSWORD_AUTH_PLUGIN
	ER_GRANT_PLUGIN_USER_EXISTS
	ER_TRUNCATE_ILLEGAL_FK
	ER_PLUGIN_IS_PERMANENT
	ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN
	ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX
	ER_STMT_CACHE_FULL
	ER_MULTI_UPDATE_KEY_CONFLICT
	ER_TABLE_NEEDS_REBUILD
	WARN_OPTION_BELOW_LIMIT
	ER_INDEX_COLUMN_TOO_LONG
	ER_ERROR_IN_TRIGGER_BODY
	ER_ERROR_IN_UNKNOWN_TRIGGER_BODY
	ER_INDEX_CORRUPT
	ER_UNDO_RECORD_TOO_BIG
	ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT
	ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE
	ER_BINLOG_UNSAFE_REPLACE_SELECT
	ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT
	ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT
	ER_BINLOG_UNSAFE_UPDATE_IGNORE
	ER_PLUGIN_NO_UNINSTALL
	ER_PLUGIN_NO_INSTALL
	ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT
	ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC
	ER_BINLOG_UNSAFE_INSERT_TWO_KEYS
	ER_TABLE_IN_FK_CHECK
	ER_UNSUPPORTED_ENGINE
	ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST
	ER_CANNOT_LOAD_FROM_TABLE_V2
	ER_MASTER_DELAY_VALUE_OUT_OF_RANGE
	ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT
	ER_PARTITION_EXCHANGE_DIFFERENT_OPTION
	ER_PARTITION_EXCHANGE_PART_TABLE
	ER_PARTITION_EXCHANGE_TEMP_TABLE
	ER_PARTITION_INSTEAD_OF_SUBPARTITION
	ER_UNKNOWN_PARTITION
	ER_TABLES_DIFFERENT_METADATA
	ER_ROW_DOES_NOT_MATCH_PARTITION
	ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX
	ER_WARN_INDEX_NOT_APPLICABLE
	ER_PARTITION_EXCHANGE_FOREIGN_KEY
	ER_NO_SUCH_KEY_VALUE
	ER_RPL_INFO_DATA_TOO_LONG
	ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE
	ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE
	ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX
	ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT
	ER_PARTITION_CLAUSE_ON_NONPARTITIONED
	ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET
	ER_NO_SUCH_PARTITION__UNUSED
	ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE
	ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE
	ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE
	ER_MTS_FEATURE_IS_NOT_SUPPORTED
	ER_MTS_UPDATED_DBS_GREATER_MAX
	ER_MTS_CANT_PARALLEL
	ER_MTS_INCONSISTENT_DATA
	ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING
	ER_DA_INVALID_CONDITION_NUMBER
	ER_INSECURE_PLAIN_TEXT
	ER_INSECURE_CHANGE_MASTER
	ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO
	ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO
	ER_SQLTHREAD_WITH_SECURE_SLAVE
	ER_TABLE_HAS_NO_FT
	ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER
	ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION
	ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST
	ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION
	ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION
	ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL
	ER_SKIPPING_LOGGED_TRANSACTION
	ER_MALFORMED_GTID_SET_SPECIFICATION
	ER_MALFORMED_GTID_SET_ENCODING
	ER_MALFORMED_GTID_SPECIFICATION
	ER_GNO_EXHAUSTED
	ER_BAD_SLAVE_AUTO_POSITION
	ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF
	ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET
	ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON
	ER_GTID_MODE_REQUIRES_BINLOG
	ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF
	ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON
	ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF
	ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF__UNUSED
	ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE
	ER_GTID_UNSAFE_CREATE_SELECT
	ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION
	ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME
	ER_MASTER_HAS_PURGED_REQUIRED_GTIDS
	ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID
	ER_UNKNOWN_EXPLAIN_FORMAT
	ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
	ER_TOO_LONG_TABLE_PARTITION_COMMENT
	ER_SLAVE_CONFIGURATION
	ER_INNODB_FT_LIMIT
	ER_INNODB_NO_FT_TEMP_TABLE
	ER_INNODB_FT_WRONG_DOCID_COLUMN
	ER_INNODB_FT_WRONG_DOCID_INDEX
	ER_INNODB_ONLINE_LOG_TOO_BIG
	ER_UNKNOWN_ALTER_ALGORITHM
	ER_UNKNOWN_ALTER_LOCK
	ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS
	ER_MTS_RECOVERY_FAILURE
	ER_MTS_RESET_WORKERS
	ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2
	ER_SLAVE_SILENT_RETRY_TRANSACTION
	ER_DISCARD_FK_CHECKS_RUNNING
	ER_TABLE_SCHEMA_MISMATCH
	ER_TABLE_IN_SYSTEM_TABLESPACE
	ER_IO_READ_ERROR
	ER_IO_WRITE_ERROR
	ER_TABLESPACE_MISSING
	ER_TABLESPACE_EXISTS
	ER_TABLESPACE_DISCARDED
	ER_INTERNAL_ERROR
	ER_INNODB_IMPORT_ERROR
	ER_INNODB_INDEX_CORRUPT
	ER_INVALID_YEAR_COLUMN_LENGTH
	ER_NOT_VALID_PASSWORD
	ER_MUST_CHANGE_PASSWORD
	ER_FK_NO_INDEX_CHILD
	ER_FK_NO_INDEX_PARENT
	ER_FK_FAIL_ADD_SYSTEM
	ER_FK_CANNOT_OPEN_PARENT
	ER_FK_INCORRECT_OPTION
	ER_FK_DUP_NAME
	ER_PASSWORD_FORMAT
	ER_FK_COLUMN_CANNOT_DROP
	ER_FK_COLUMN_CANNOT_DROP_CHILD
	ER_FK_COLUMN_NOT_NULL
	ER_DUP_INDEX
	ER_FK_COLUMN_CANNOT_CHANGE
	ER_FK_COLUMN_CANNOT_CHANGE_CHILD
	ER_UNUSED5
	ER_MALFORMED_PACKET
	ER_READ_ONLY_MODE
	ER_GTID_NEXT_TYPE_UNDEFINED_GROUP
	ER_VARIABLE_NOT_SETTABLE_IN_SP
	ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF
	ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY
	ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY
	ER_GTID_PURGED_WAS_CHANGED
	ER_GTID_EXECUTED_WAS_CHANGED
	ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
	ER_ALTER_OPERATION_NOT_SUPPORTED
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK
	ER_UNUSED6
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS
	ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE
	ER_DUP_UNKNOWN_IN_INDEX
	ER_IDENT_CAUSES_TOO_LONG_PATH
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL
	ER_MUST_CHANGE_PASSWORD_LOGIN
	ER_ROW_IN_WRONG_PARTITION
	ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX
	ER_INNODB_NO_FT_USES_PARSER
	ER_BINLOG_LOGICAL_CORRUPTION
	ER_WARN_PURGE_LOG_IN_USE
	ER_WARN_PURGE_LOG_IS_ACTIVE
	ER_AUTO_INCREMENT_CONFLICT
	WARN_ON_BLOCKHOLE_IN_RBR
	ER_SLAVE_MI_INIT_REPOSITORY
	ER_SLAVE_RLI_INIT_REPOSITORY
	ER_ACCESS_DENIED_CHANGE_USER_ERROR
	ER_INNODB_READ_ONLY
	ER_STOP_SLAVE_SQL_THREAD_TIMEOUT
	ER_STOP_SLAVE_IO_THREAD_TIMEOUT
	ER_TABLE_CORRUPT
	ER_TEMP_FILE_WRITE_FAILURE
	ER_INNODB_FT_AUX_NOT_HEX_ID
	ER_OLD_TEMPORALS_UPGRADED
	ER_INNODB_FORCED_RECOVERY
	ER_AES_INVALID_IV
	ER_PLUGIN_CANNOT_BE_UNINSTALLED
	ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP
	ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER
)
View Source
const (
	ER_FILE_CORRUPT uint16 = iota + 3000
	ER_ERROR_ON_MASTER
	ER_INCONSISTENT_ERROR
	ER_STORAGE_ENGINE_NOT_LOADED
	ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER
	ER_WARN_LEGACY_SYNTAX_CONVERTED
	ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN
	ER_CANNOT_DISCARD_TEMPORARY_TABLE
	ER_FK_DEPTH_EXCEEDED
	ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2
	ER_WARN_TRIGGER_DOESNT_HAVE_CREATED
	ER_REFERENCED_TRG_DOES_NOT_EXIST
	ER_EXPLAIN_NOT_SUPPORTED
	ER_INVALID_FIELD_SIZE
	ER_MISSING_HA_CREATE_OPTION
	ER_ENGINE_OUT_OF_MEMORY
	ER_PASSWORD_EXPIRE_ANONYMOUS_USER
	ER_SLAVE_SQL_THREAD_MUST_STOP
	ER_NO_FT_MATERIALIZED_SUBQUERY
	ER_INNODB_UNDO_LOG_FULL
	ER_INVALID_ARGUMENT_FOR_LOGARITHM
	ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP
	ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO
	ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS
	ER_QUERY_TIMEOUT
	ER_NON_RO_SELECT_DISABLE_TIMER
	ER_DUP_LIST_ENTRY
	ER_SQL_MODE_NO_EFFECT
	ER_AGGREGATE_ORDER_FOR_UNION
	ER_AGGREGATE_ORDER_NON_AGG_QUERY
	ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR
	ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER
	ER_SERVER_OFFLINE_MODE
	ER_GIS_DIFFERENT_SRIDS
	ER_GIS_UNSUPPORTED_ARGUMENT
	ER_GIS_UNKNOWN_ERROR
	ER_GIS_UNKNOWN_EXCEPTION
	ER_GIS_INVALID_DATA
	ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION
	ER_BOOST_GEOMETRY_CENTROID_EXCEPTION
	ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION
	ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION
	ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION
	ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION
	ER_STD_BAD_ALLOC_ERROR
	ER_STD_DOMAIN_ERROR
	ER_STD_LENGTH_ERROR
	ER_STD_INVALID_ARGUMENT
	ER_STD_OUT_OF_RANGE_ERROR
	ER_STD_OVERFLOW_ERROR
	ER_STD_RANGE_ERROR
	ER_STD_UNDERFLOW_ERROR
	ER_STD_LOGIC_ERROR
	ER_STD_RUNTIME_ERROR
	ER_STD_UNKNOWN_EXCEPTION
	ER_GIS_DATA_WRONG_ENDIANESS
	ER_CHANGE_MASTER_PASSWORD_LENGTH
	ER_USER_LOCK_WRONG_NAME
	ER_USER_LOCK_DEADLOCK
	ER_REPLACE_INACCESSIBLE_ROWS
	ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS
	ER_ILLEGAL_USER_VAR
	ER_GTID_MODE_OFF
	ER_UNSUPPORTED_BY_REPLICATION_THREAD
	ER_INCORRECT_TYPE
	ER_FIELD_IN_ORDER_NOT_SELECT
	ER_AGGREGATE_IN_ORDER_NOT_SELECT
	ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN
	ER_NET_OK_PACKET_TOO_LARGE
	ER_INVALID_JSON_DATA
	ER_INVALID_GEOJSON_MISSING_MEMBER
	ER_INVALID_GEOJSON_WRONG_TYPE
	ER_INVALID_GEOJSON_UNSPECIFIED
	ER_DIMENSION_UNSUPPORTED
	ER_SLAVE_CHANNEL_DOES_NOT_EXIST
	ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT
	ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG
	ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY
	ER_SLAVE_CHANNEL_DELETE
	ER_SLAVE_MULTIPLE_CHANNELS_CMD
	ER_SLAVE_MAX_CHANNELS_EXCEEDED
	ER_SLAVE_CHANNEL_MUST_STOP
	ER_SLAVE_CHANNEL_NOT_RUNNING
	ER_SLAVE_CHANNEL_WAS_RUNNING
	ER_SLAVE_CHANNEL_WAS_NOT_RUNNING
	ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP
	ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER
	ER_WRONG_FIELD_WITH_GROUP_V2
	ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2
	ER_WARN_DEPRECATED_SYSVAR_UPDATE
	ER_WARN_DEPRECATED_SQLMODE
	ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID
	ER_GROUP_REPLICATION_CONFIGURATION
	ER_GROUP_REPLICATION_RUNNING
	ER_GROUP_REPLICATION_APPLIER_INIT_ERROR
	ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT
	ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR
	ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR
	ER_BEFORE_DML_VALIDATION_ERROR
	ER_PREVENTS_VARIABLE_WITHOUT_RBR
	ER_RUN_HOOK_ERROR
	ER_TRANSACTION_ROLLBACK_DURING_COMMIT
	ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
	ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN
	ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
	ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
	ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
	ER_GENERATED_COLUMN_NON_PRIOR
	ER_DEPENDENT_BY_GENERATED_COLUMN
	ER_GENERATED_COLUMN_REF_AUTO_INC
	ER_FEATURE_NOT_AVAILABLE
	ER_CANT_SET_GTID_MODE
	ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF
	ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION
	ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON
	ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF
	ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS
	ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS
	ER_ACCOUNT_HAS_BEEN_LOCKED
	ER_WRONG_TABLESPACE_NAME
	ER_TABLESPACE_IS_NOT_EMPTY
	ER_WRONG_FILE_NAME
	ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION
	ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR
	ER_WARN_BAD_MAX_EXECUTION_TIME
	ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME
	ER_WARN_CONFLICTING_HINT
	ER_WARN_UNKNOWN_QB_NAME
	ER_UNRESOLVED_HINT_NAME
	ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE
	ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED
	ER_LOCKING_SERVICE_WRONG_NAME
	ER_LOCKING_SERVICE_DEADLOCK
	ER_LOCKING_SERVICE_TIMEOUT
	ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED
	ER_SQL_MODE_MERGED
	ER_VTOKEN_PLUGIN_TOKEN_MISMATCH
	ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND
	ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID
	ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED
	ER_INVALID_JSON_TEXT
	ER_INVALID_JSON_TEXT_IN_PARAM
	ER_INVALID_JSON_BINARY_DATA
	ER_INVALID_JSON_PATH
	ER_INVALID_JSON_CHARSET
	ER_INVALID_JSON_CHARSET_IN_FUNCTION
	ER_INVALID_TYPE_FOR_JSON
	ER_INVALID_CAST_TO_JSON
	ER_INVALID_JSON_PATH_CHARSET
	ER_INVALID_JSON_PATH_WILDCARD
	ER_JSON_VALUE_TOO_BIG
	ER_JSON_KEY_TOO_BIG
	ER_JSON_USED_AS_KEY
	ER_JSON_VACUOUS_PATH
	ER_JSON_BAD_ONE_OR_ALL_ARG
	ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE
	ER_INVALID_JSON_VALUE_FOR_CAST
	ER_JSON_DOCUMENT_TOO_DEEP
	ER_JSON_DOCUMENT_NULL_KEY
	ER_SECURE_TRANSPORT_REQUIRED
	ER_NO_SECURE_TRANSPORTS_CONFIGURED
	ER_DISABLED_STORAGE_ENGINE
	ER_USER_DOES_NOT_EXIST
	ER_USER_ALREADY_EXISTS
	ER_AUDIT_API_ABORT
	ER_INVALID_JSON_PATH_ARRAY_CELL
	ER_BUFPOOL_RESIZE_INPROGRESS
	ER_FEATURE_DISABLED_SEE_DOC
	ER_SERVER_ISNT_AVAILABLE
	ER_SESSION_WAS_KILLED
	ER_CAPACITY_EXCEEDED
	ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER
	ER_TABLE_NEEDS_UPG_PART
	ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID
	ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL
	ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT
)
View Source
const (
	OK_PACKET  byte = 0x00
	ERR_PACKET byte = 0xff
	EOF_PACKET byte = 0xfe
)

https://dev.mysql.com/doc/internals/en/generic-response-packets.html

View Source
const (
	SERVER_STATUS_IN_TRANS uint16 = 1 << iota
	SERVER_STATUS_AUTOCOMMIT
	SERVER_MORE_RESULTS_EXISTS
	SERVER_STATUS_NO_GOOD_INDEX_USED
	SERVER_STATUS_NO_INDEX_USED
	SERVER_STATUS_CURSOR_EXISTS
	SERVER_STATUS_LAST_ROW_SENT
	SERVER_STATUS_DB_DROPPED
	SERVER_STATUS_NO_BACKSLASH_ESCAPES
	SERVER_STATUS_METADATA_CHANGED
	SERVER_QUERY_WAS_SLOW
	SERVER_PS_OUT_PARAMS
	SERVER_STATUS_IN_TRANS_READONLY
	SERVER_SESSION_STATE_CHANGED
)

https://dev.mysql.com/doc/internals/en/status-flags.html

View Source
const PACKET_BUFFER_SIZE = 1500 // default MTU

Variables

View Source
var ErrNoStream = errors.New("mysqlproto: stream is not set")

Functions

func ComQueryRequest

func ComQueryRequest(query []byte) []byte

func CommandPacket

func CommandPacket(command byte, payload []byte) []byte

func HandshakeResponse41

func HandshakeResponse41(
	capabilityFlags uint32,
	characterSet byte,
	username string,
	password string,
	authPluginData []byte,
	database string,
	authPluginName string,
	connectAttrs map[string]string,
) []byte

func ReadRowValue

func ReadRowValue(row []byte, offset uint64) ([]byte, uint64, bool)

Types

type Column

type Column struct {
	Catalog      string
	Schema       string
	Table        string
	OrgTable     string
	Name         string
	OrgName      string
	CharacterSet uint16
	ColumnLength uint64
	ColumnType   Type
	Flags        uint16
	Decimals     byte
}

https://dev.mysql.com/doc/internals/en/com-query-response.html#column-definition

type Conn

type Conn struct {
	*Stream
	CapabilityFlags uint32
}

func ConnectPlainHandshake

func ConnectPlainHandshake(rw net.Conn, capabilityFlags uint32,
	username, password, database string,
	connectAttrs map[string]string,
	readTimeout time.Duration) (Conn, error)

func (Conn) Close

func (c Conn) Close() error

type ERRPacket

type ERRPacket struct {
	Header         byte // always 0xff
	ErrorCode      uint16
	SQLStateMarker string
	SQLState       string
	ErrorMessage   string
}

type HandshakeV10

type HandshakeV10 struct {
	ProtocolVersion byte
	ServerVersion   string
	ConnectionID    [4]byte
	AuthPluginData  []byte
	CapabilityFlags uint32
	CharacterSet    byte
	StatusFlags     [2]byte
	AuthPluginName  string
}

func ReadHandshakeV10

func ReadHandshakeV10(stream *Stream) (HandshakeV10, error)

type MockAddr

type MockAddr struct{}

func (MockAddr) Network

func (m MockAddr) Network() string

func (MockAddr) String

func (m MockAddr) String() string

type OKPacket

type OKPacket struct {
	Header              byte // 0x00 or 0xfe
	AffectedRows        uint64
	LastInsertID        uint64
	StatusFlags         uint16
	Warnings            uint16
	Info                string
	SessionStateChanges string
}

type Packet

type Packet struct {
	SequenceID byte
	Payload    []byte
}

type ResultSet

type ResultSet struct {
	Columns []Column
	// contains filtered or unexported fields
}

func (ResultSet) Row

func (r ResultSet) Row() ([]byte, error)

type Stream

type Stream struct {
	// contains filtered or unexported fields
}

func NewStream

func NewStream(stream net.Conn, readTimeout time.Duration) *Stream

func (*Stream) Close

func (s *Stream) Close() error

func (*Stream) NextPacket

func (s *Stream) NextPacket() (Packet, error)

func (*Stream) ResetStats

func (s *Stream) ResetStats()

func (*Stream) Syscalls

func (s *Stream) Syscalls() int

func (*Stream) Write

func (s *Stream) Write(data []byte) (int, error)

type Type

type Type byte

https://dev.mysql.com/doc/internals/en/com-query-response.html#column-type

const (
	TypeDecimal    Type = 0x00
	TypeTiny       Type = 0x01
	TypeShort      Type = 0x02
	TypeLong       Type = 0x03
	TypeFloat      Type = 0x04
	TypeDouble     Type = 0x05
	TypeNULL       Type = 0x06
	TypeTimestamp  Type = 0x07
	TypeLongLong   Type = 0x08
	TypeInt24      Type = 0x09
	TypeDate       Type = 0x0a
	TypeTime       Type = 0x0b
	TypeDateTime   Type = 0x0c
	TypeYear       Type = 0x0d
	TypeNewDate    Type = 0x0e
	TypeVarchar    Type = 0x0f
	TypeBit        Type = 0x10
	TypeTimestamp2 Type = 0x11
	TypeDateTime2  Type = 0x12
	TypeTime2      Type = 0x13
	TypeNewDecimal Type = 0xf6
	TypeEnum       Type = 0xf7
	TypeSet        Type = 0xf8
	TypeTinyBLOB   Type = 0xf9
	TypeMediumBLOB Type = 0xfa
	TypeLongBLOB   Type = 0xfb
	TypeBLOB       Type = 0xfc
	TypeVarString  Type = 0xfd
	TypeString     Type = 0xfe
	TypeGEOMETRY   Type = 0xff
)

func (Type) String

func (t Type) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL