forked from ebhomengo/niki
175 lines
3.3 KiB
Go
175 lines
3.3 KiB
Go
|
// Go MySQL Driver - A MySQL-Driver for Go's database/sql package
|
||
|
//
|
||
|
// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.
|
||
|
//
|
||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
|
||
|
package mysql
|
||
|
|
||
|
const (
|
||
|
defaultAuthPlugin = "mysql_native_password"
|
||
|
defaultMaxAllowedPacket = 4 << 20 // 4 MiB
|
||
|
minProtocolVersion = 10
|
||
|
maxPacketSize = 1<<24 - 1
|
||
|
timeFormat = "2006-01-02 15:04:05.999999"
|
||
|
)
|
||
|
|
||
|
// MySQL constants documentation:
|
||
|
// http://dev.mysql.com/doc/internals/en/client-server-protocol.html
|
||
|
|
||
|
const (
|
||
|
iOK byte = 0x00
|
||
|
iAuthMoreData byte = 0x01
|
||
|
iLocalInFile byte = 0xfb
|
||
|
iEOF byte = 0xfe
|
||
|
iERR byte = 0xff
|
||
|
)
|
||
|
|
||
|
// https://dev.mysql.com/doc/internals/en/capability-flags.html#packet-Protocol::CapabilityFlags
|
||
|
type clientFlag uint32
|
||
|
|
||
|
const (
|
||
|
clientLongPassword clientFlag = 1 << iota
|
||
|
clientFoundRows
|
||
|
clientLongFlag
|
||
|
clientConnectWithDB
|
||
|
clientNoSchema
|
||
|
clientCompress
|
||
|
clientODBC
|
||
|
clientLocalFiles
|
||
|
clientIgnoreSpace
|
||
|
clientProtocol41
|
||
|
clientInteractive
|
||
|
clientSSL
|
||
|
clientIgnoreSIGPIPE
|
||
|
clientTransactions
|
||
|
clientReserved
|
||
|
clientSecureConn
|
||
|
clientMultiStatements
|
||
|
clientMultiResults
|
||
|
clientPSMultiResults
|
||
|
clientPluginAuth
|
||
|
clientConnectAttrs
|
||
|
clientPluginAuthLenEncClientData
|
||
|
clientCanHandleExpiredPasswords
|
||
|
clientSessionTrack
|
||
|
clientDeprecateEOF
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
comQuit byte = iota + 1
|
||
|
comInitDB
|
||
|
comQuery
|
||
|
comFieldList
|
||
|
comCreateDB
|
||
|
comDropDB
|
||
|
comRefresh
|
||
|
comShutdown
|
||
|
comStatistics
|
||
|
comProcessInfo
|
||
|
comConnect
|
||
|
comProcessKill
|
||
|
comDebug
|
||
|
comPing
|
||
|
comTime
|
||
|
comDelayedInsert
|
||
|
comChangeUser
|
||
|
comBinlogDump
|
||
|
comTableDump
|
||
|
comConnectOut
|
||
|
comRegisterSlave
|
||
|
comStmtPrepare
|
||
|
comStmtExecute
|
||
|
comStmtSendLongData
|
||
|
comStmtClose
|
||
|
comStmtReset
|
||
|
comSetOption
|
||
|
comStmtFetch
|
||
|
)
|
||
|
|
||
|
// https://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnType
|
||
|
type fieldType byte
|
||
|
|
||
|
const (
|
||
|
fieldTypeDecimal fieldType = iota
|
||
|
fieldTypeTiny
|
||
|
fieldTypeShort
|
||
|
fieldTypeLong
|
||
|
fieldTypeFloat
|
||
|
fieldTypeDouble
|
||
|
fieldTypeNULL
|
||
|
fieldTypeTimestamp
|
||
|
fieldTypeLongLong
|
||
|
fieldTypeInt24
|
||
|
fieldTypeDate
|
||
|
fieldTypeTime
|
||
|
fieldTypeDateTime
|
||
|
fieldTypeYear
|
||
|
fieldTypeNewDate
|
||
|
fieldTypeVarChar
|
||
|
fieldTypeBit
|
||
|
)
|
||
|
const (
|
||
|
fieldTypeJSON fieldType = iota + 0xf5
|
||
|
fieldTypeNewDecimal
|
||
|
fieldTypeEnum
|
||
|
fieldTypeSet
|
||
|
fieldTypeTinyBLOB
|
||
|
fieldTypeMediumBLOB
|
||
|
fieldTypeLongBLOB
|
||
|
fieldTypeBLOB
|
||
|
fieldTypeVarString
|
||
|
fieldTypeString
|
||
|
fieldTypeGeometry
|
||
|
)
|
||
|
|
||
|
type fieldFlag uint16
|
||
|
|
||
|
const (
|
||
|
flagNotNULL fieldFlag = 1 << iota
|
||
|
flagPriKey
|
||
|
flagUniqueKey
|
||
|
flagMultipleKey
|
||
|
flagBLOB
|
||
|
flagUnsigned
|
||
|
flagZeroFill
|
||
|
flagBinary
|
||
|
flagEnum
|
||
|
flagAutoIncrement
|
||
|
flagTimestamp
|
||
|
flagSet
|
||
|
flagUnknown1
|
||
|
flagUnknown2
|
||
|
flagUnknown3
|
||
|
flagUnknown4
|
||
|
)
|
||
|
|
||
|
// http://dev.mysql.com/doc/internals/en/status-flags.html
|
||
|
type statusFlag uint16
|
||
|
|
||
|
const (
|
||
|
statusInTrans statusFlag = 1 << iota
|
||
|
statusInAutocommit
|
||
|
statusReserved // Not in documentation
|
||
|
statusMoreResultsExists
|
||
|
statusNoGoodIndexUsed
|
||
|
statusNoIndexUsed
|
||
|
statusCursorExists
|
||
|
statusLastRowSent
|
||
|
statusDbDropped
|
||
|
statusNoBackslashEscapes
|
||
|
statusMetadataChanged
|
||
|
statusQueryWasSlow
|
||
|
statusPsOutParams
|
||
|
statusInTransReadonly
|
||
|
statusSessionStateChanged
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
cachingSha2PasswordRequestPublicKey = 2
|
||
|
cachingSha2PasswordFastAuthSuccess = 3
|
||
|
cachingSha2PasswordPerformFullAuthentication = 4
|
||
|
)
|