mirror of
https://github.com/square/certigo.git
synced 2024-04-21 12:32:40 +00:00
This moves two functions out of main.go. The only change to the functions was to make them take arguments, instead of using global variables in main. The mysql and psql imports are moved here too.
164 lines
3.0 KiB
Go
164 lines
3.0 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 (
|
|
minProtocolVersion byte = 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
|
|
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
|
|
const (
|
|
fieldTypeDecimal byte = iota
|
|
fieldTypeTiny
|
|
fieldTypeShort
|
|
fieldTypeLong
|
|
fieldTypeFloat
|
|
fieldTypeDouble
|
|
fieldTypeNULL
|
|
fieldTypeTimestamp
|
|
fieldTypeLongLong
|
|
fieldTypeInt24
|
|
fieldTypeDate
|
|
fieldTypeTime
|
|
fieldTypeDateTime
|
|
fieldTypeYear
|
|
fieldTypeNewDate
|
|
fieldTypeVarChar
|
|
fieldTypeBit
|
|
)
|
|
const (
|
|
fieldTypeJSON byte = 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
|
|
)
|