Documentation
¶
Index ¶
- Constants
- func GetCommandName(cmd byte) string
- func IsEOFPacket(payload []byte) bool
- func IsERRPacket(payload []byte) bool
- func IsOKPacket(payload []byte) bool
- func IsQueryCommand(cmd byte) bool
- func IsTransactionCommand(query string) bool
- func WriteLengthEncodedInt(buf []byte, n uint64) []byte
- func WriteLengthEncodedString(buf []byte, s string) []byte
- func WritePacket(w io.Writer, sequenceID uint8, payload []byte) error
- func WriteString(buf []byte, s string) []byte
- func WriteUint16(buf []byte, n uint16) []byte
- func WriteUint32(buf []byte, n uint32) []byte
- type EOFPacket
- type ERRPacket
- type HandshakeResponse41
- type HandshakeV10
- type OKPacket
- type Packet
Constants ¶
const ( COM_SLEEP = 0x00 COM_QUIT = 0x01 COM_INIT_DB = 0x02 COM_QUERY = 0x03 COM_FIELD_LIST = 0x04 COM_CREATE_DB = 0x05 COM_DROP_DB = 0x06 COM_REFRESH = 0x07 COM_SHUTDOWN = 0x08 COM_STATISTICS = 0x09 COM_PROCESS_INFO = 0x0a COM_CONNECT = 0x0b COM_PROCESS_KILL = 0x0c COM_DEBUG = 0x0d COM_PING = 0x0e COM_TIME = 0x0f COM_DELAYED_INSERT = 0x10 COM_CHANGE_USER = 0x11 COM_BINLOG_DUMP = 0x12 COM_TABLE_DUMP = 0x13 COM_CONNECT_OUT = 0x14 COM_REGISTER_SLAVE = 0x15 COM_STMT_PREPARE = 0x16 COM_STMT_EXECUTE = 0x17 COM_STMT_SEND_LONG_DATA = 0x18 COM_STMT_CLOSE = 0x19 COM_STMT_RESET = 0x1a COM_SET_OPTION = 0x1b COM_STMT_FETCH = 0x1c COM_DAEMON = 0x1d COM_BINLOG_DUMP_GTID = 0x1e COM_RESET_CONNECTION = 0x1f )
MySQL Command Types
const ( OK_PACKET = 0x00 EOF_PACKET = 0xFE ERR_PACKET = 0xFF )
Packet Type Indicators
Variables ¶
This section is empty.
Functions ¶
func GetCommandName ¶
GetCommandName returns the string name of a command type
func IsEOFPacket ¶
IsEOFPacket checks if a payload is an EOF packet
func IsERRPacket ¶
IsERRPacket checks if a payload is an ERR packet
func IsOKPacket ¶
IsOKPacket checks if a payload is an OK packet
func IsQueryCommand ¶
IsQueryCommand returns true if the command modifies data or requires special handling
func IsTransactionCommand ¶
IsTransactionCommand checks if a query string is a transaction command
func WriteLengthEncodedInt ¶
WriteLengthEncodedInt writes a length-encoded integer
func WriteLengthEncodedString ¶
WriteLengthEncodedString writes a length-encoded string
func WritePacket ¶
WritePacket writes a packet to the connection
func WriteString ¶
WriteString writes a length-encoded string
Types ¶
type EOFPacket ¶
EOFPacket represents a MySQL EOF packet
func ParseEOFPacket ¶
ParseEOFPacket parses an EOF packet payload
type ERRPacket ¶
ERRPacket represents a MySQL error packet
func ParseERRPacket ¶
ParseERRPacket parses an error packet payload
type HandshakeResponse41 ¶
type HandshakeResponse41 struct {
CapabilityFlags uint32
MaxPacketSize uint32
CharacterSet uint8
Username string
AuthResponse []byte
Database string
AuthPluginName string
}
HandshakeResponse41 represents the client's response to handshake
func DecodeHandshakeResponse41 ¶
func DecodeHandshakeResponse41(payload []byte) (*HandshakeResponse41, error)
DecodeHandshakeResponse41 parses the client handshake response
type HandshakeV10 ¶
type HandshakeV10 struct {
ProtocolVersion uint8
ServerVersion string
ConnectionID uint32
AuthPluginData []byte
CapabilityFlags uint32
CharacterSet uint8
StatusFlags uint16
AuthPluginName string
}
HandshakeV10 represents the initial handshake packet from server to client
func NewHandshakeV10 ¶
func NewHandshakeV10(connectionID uint32) *HandshakeV10
NewHandshakeV10 creates a new default handshake packet
func (*HandshakeV10) Encode ¶
func (h *HandshakeV10) Encode() []byte
Encode serializes the handshake packet