mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
3.0 KiB
163 lines
3.0 KiB
// 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 |
|
)
|
|
|