Documentation
¶
Index ¶
- Constants
- Variables
- func FormatSQLModeStr(s string) string
- func GetDefaultFieldLengthAndDecimal(tp byte) (flen int, decimal int)
- func GetDefaultFieldLengthAndDecimalForCast(tp byte) (flen int, decimal int)
- func HasCursorExistsFlag(serverStatus uint16) bool
- func IsIntegerType(tp byte) bool
- type FormatFunc
- type PriorityEnum
- type SQLMode
- func (m SQLMode) HasANSIQuotesMode() bool
- func (m SQLMode) HasAllowInvalidDatesMode() bool
- func (m SQLMode) HasErrorForDivisionByZeroMode() bool
- func (m SQLMode) HasHighNotPrecedenceMode() bool
- func (m SQLMode) HasIgnoreSpaceMode() bool
- func (m SQLMode) HasNoAutoCreateUserMode() bool
- func (m SQLMode) HasNoBackslashEscapesMode() bool
- func (m SQLMode) HasNoUnsignedSubtractionMode() bool
- func (m SQLMode) HasNoZeroDateMode() bool
- func (m SQLMode) HasNoZeroInDateMode() bool
- func (m SQLMode) HasOnlyFullGroupBy() bool
- func (m SQLMode) HasPadCharToFullLengthMode() bool
- func (m SQLMode) HasPipesAsConcatMode() bool
- func (m SQLMode) HasRealAsFloatMode() bool
- func (m SQLMode) HasStrictMode() bool
Constants ¶
const ( OKHeader byte = 0x00 ErrHeader byte = 0xff EOFHeader byte = 0xfe LocalInFileHeader byte = 0xfb )
Header information.
const ( ServerStatusInTrans uint16 = 0x0001 ServerStatusAutocommit uint16 = 0x0002 ServerMoreResultsExists uint16 = 0x0008 ServerStatusNoGoodIndexUsed uint16 = 0x0010 ServerStatusNoIndexUsed uint16 = 0x0020 ServerStatusCursorExists uint16 = 0x0040 ServerStatusLastRowSend uint16 = 0x0080 ServerStatusDBDropped uint16 = 0x0100 ServerStatusNoBackslashEscaped uint16 = 0x0200 ServerStatusMetadataChanged uint16 = 0x0400 ServerStatusWasSlow uint16 = 0x0800 ServerPSOutParams uint16 = 0x1000 )
Server information.
const ( // MaxPayloadLen is the max packet payload length. MaxPayloadLen = 1<<24 - 1 // MaxTableNameLength is max length of table name identifier. MaxTableNameLength = 64 // MaxDatabaseNameLength is max length of database name identifier. MaxDatabaseNameLength = 64 // MaxColumnNameLength is max length of column name identifier. MaxColumnNameLength = 64 // MaxKeyParts is max length of key parts. MaxKeyParts = 16 // MaxIndexIdentifierLen is max length of index identifier. MaxIndexIdentifierLen = 64 // MaxConstraintIdentifierLen is max length of constrain identifier. MaxConstraintIdentifierLen = 64 // MaxViewIdentifierLen is max length of view identifier. MaxViewIdentifierLen = 64 // MaxAliasIdentifierLen is max length of alias identifier. MaxAliasIdentifierLen = 256 // MaxUserDefinedVariableLen is max length of user-defined variable. MaxUserDefinedVariableLen = 64 )
Identifier length limitations. See https://dev.mysql.com/doc/refman/5.7/en/identifiers.html
const ( ComSleep byte = iota ComQuit 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 ComDaemon ComBinlogDumpGtid ComResetConnection ComEnd )
Command information.
const ( ClientLongPassword uint32 = 1 << iota ClientFoundRows ClientLongFlag ClientConnectWithDB ClientNoSchema ClientCompress ClientODBC ClientLocalFiles ClientIgnoreSpace ClientProtocol41 ClientInteractive ClientSSL ClientIgnoreSigpipe ClientTransactions ClientReserved ClientSecureConnection ClientMultiStatements ClientMultiResults ClientPSMultiResults ClientPluginAuth ClientConnectAtts ClientPluginAuthLenencClientData )
Client information.
const ( AuthNativePassword = "mysql_native_password" AuthCachingSha2Password = "caching_sha2_password" )
Auth name information.
const ( // SystemDB is the name of system database. SystemDB = "mysql" // GlobalPrivTable is the table in system db contains global scope privilege info. GlobalPrivTable = "global_priv" // UserTable is the table in system db contains user info. UserTable = "User" // DBTable is the table in system db contains db scope privilege info. DBTable = "DB" // TablePrivTable is the table in system db contains table scope privilege info. TablePrivTable = "Tables_priv" // ColumnPrivTable is the table in system db contains column scope privilege info. ColumnPrivTable = "Columns_priv" // GlobalVariablesTable is the table contains global system variables. GlobalVariablesTable = "GLOBAL_VARIABLES" // GlobalStatusTable is the table contains global status variables. GlobalStatusTable = "GLOBAL_STATUS" // TiDBTable is the table contains tidb info. TiDBTable = "tidb" // RoleEdgesTable is the table contains role relation info RoleEdgeTable = "role_edges" // DefaultRoleTable is the table contain default active role info DefaultRoleTable = "default_roles" )
MySQL database and tables.
const ( // For arguments that have no fixed number of decimals, the decimals value is set to 31, // which is 1 more than the maximum number of decimals permitted for the DECIMAL, FLOAT, and DOUBLE data types. NotFixedDec = 31 MaxIntWidth = 20 MaxRealWidth = 23 MaxFloatingTypeScale = 30 MaxFloatingTypeWidth = 255 MaxDecimalScale = 30 MaxDecimalWidth = 65 MaxDateWidth = 10 // YYYY-MM-DD. MaxDatetimeWidthNoFsp = 19 // YYYY-MM-DD HH:MM:SS MaxDatetimeWidthWithFsp = 26 // YYYY-MM-DD HH:MM:SS[.fraction] MaxDatetimeFullWidth = 29 // YYYY-MM-DD HH:MM:SS.###### AM MaxDurationWidthNoFsp = 10 // HH:MM:SS MaxDurationWidthWithFsp = 15 // HH:MM:SS[.fraction] MaxBlobWidth = 16777216 MaxBitDisplayWidth = 64 MaxFloatPrecisionLength = 24 MaxDoublePrecisionLength = 53 )
MySQL type maximum length.
const ( MaxFieldCharLength = 255 MaxFieldVarCharLength = 65535 )
MySQL max type field length.
const AuthSwitchRequest byte = 0xfe
Protocol Features
const DefaultSQLMode = "" /* 137-byte string literal not displayed */
DefaultSQLMode for GLOBAL_VARIABLES
const ErrTextLength = 80
ErrTextLength error text length limit.
const MaxTypeSetMembers = 64
MaxTypeSetMembers is the number of set members.
const PWDHashLen = 40
PWDHashLen is the length of password's hash.
const (
PrimaryKeyName = "PRIMARY"
)
PrimaryKeyName defines primary key name.
const (
TypeNoCache byte = 0xff
)
Cache type information.
Variables ¶
var ( // TiDBReleaseVersion is initialized by (git describe --tags) in Makefile. TiDBReleaseVersion = "None" // ServerVersion is the version information of this tidb-server in MySQL's format. ServerVersion = fmt.Sprintf("5.7.25-TiDB-%s", TiDBReleaseVersion) )
Version information.
var CombinationSQLMode = map[string][]string{
"ANSI": {"REAL_AS_FLOAT", "PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE", "ONLY_FULL_GROUP_BY"},
"DB2": {"PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE", "NO_KEY_OPTIONS", "NO_TABLE_OPTIONS", "NO_FIELD_OPTIONS"},
"MAXDB": {"PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE", "NO_KEY_OPTIONS", "NO_TABLE_OPTIONS", "NO_FIELD_OPTIONS", "NO_AUTO_CREATE_USER"},
"MSSQL": {"PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE", "NO_KEY_OPTIONS", "NO_TABLE_OPTIONS", "NO_FIELD_OPTIONS"},
"MYSQL323": {"MYSQL323", "HIGH_NOT_PRECEDENCE"},
"MYSQL40": {"MYSQL40", "HIGH_NOT_PRECEDENCE"},
"ORACLE": {"PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE", "NO_KEY_OPTIONS", "NO_TABLE_OPTIONS", "NO_FIELD_OPTIONS", "NO_AUTO_CREATE_USER"},
"POSTGRESQL": {"PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE", "NO_KEY_OPTIONS", "NO_TABLE_OPTIONS", "NO_FIELD_OPTIONS"},
"TRADITIONAL": {"STRICT_TRANS_TABLES", "STRICT_ALL_TABLES", "NO_ZERO_IN_DATE", "NO_ZERO_DATE", "ERROR_FOR_DIVISION_BY_ZERO", "NO_AUTO_CREATE_USER", "NO_ENGINE_SUBSTITUTION"},
}
CombinationSQLMode is the special modes that provided as shorthand for combinations of mode values. See https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-combo.
var Command2Str = map[byte]string{ ComSleep: "Sleep", ComQuit: "Quit", ComInitDB: "Init DB", ComQuery: "Query", ComFieldList: "Field List", ComCreateDB: "Create DB", ComDropDB: "Drop DB", ComRefresh: "Refresh", ComShutdown: "Shutdown", ComStatistics: "Statistics", ComProcessInfo: "Processlist", ComConnect: "Connect", ComProcessKill: "Kill", ComDebug: "Debug", ComPing: "Ping", ComTime: "Time", ComDelayedInsert: "Delayed Insert", ComChangeUser: "Change User", ComBinlogDump: "Binlog Dump", ComTableDump: "Table Dump", ComConnectOut: "Connect out", ComRegisterSlave: "Register Slave", ComStmtPrepare: "Prepare", ComStmtExecute: "Execute", ComStmtSendLongData: "Long Data", ComStmtClose: "Close stmt", ComStmtReset: "Reset stmt", ComSetOption: "Set option", ComStmtFetch: "Fetch", ComDaemon: "Daemon", ComBinlogDumpGtid: "Binlog Dump", ComResetConnection: "Reset connect", }
Command2Str is the command information to command name.
var DefaultLengthOfMysqlTypes = map[byte]int{
TypeYear: 1,
TypeDate: 3,
TypeDuration: 3,
TypeDatetime: 8,
TypeTimestamp: 4,
TypeTiny: 1,
TypeShort: 2,
TypeInt24: 3,
TypeLong: 4,
TypeLonglong: 8,
TypeFloat: 4,
TypeDouble: 8,
TypeEnum: 2,
TypeString: 1,
TypeSet: 8,
}
DefaultLengthOfMysqlTypes is the map for default physical length of MySQL data types. See http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
var DefaultLengthOfTimeFraction = map[int]int{
0: 0,
1: 1,
2: 1,
3: 2,
4: 2,
5: 3,
6: 3,
}
DefaultLengthOfTimeFraction is the map for default physical length of time fractions.
var Priority2Str = map[PriorityEnum]string{ NoPriority: "NO_PRIORITY", LowPriority: "LOW_PRIORITY", HighPriority: "HIGH_PRIORITY", DelayedPriority: "DELAYED", }
Priority2Str is used to convert the statement priority to string.
var Str2SQLMode = map[string]SQLMode{ "REAL_AS_FLOAT": ModeRealAsFloat, "PIPES_AS_CONCAT": ModePipesAsConcat, "ANSI_QUOTES": ModeANSIQuotes, "IGNORE_SPACE": ModeIgnoreSpace, "NOT_USED": ModeNotUsed, "ONLY_FULL_GROUP_BY": ModeOnlyFullGroupBy, "NO_UNSIGNED_SUBTRACTION": ModeNoUnsignedSubtraction, "NO_DIR_IN_CREATE": ModeNoDirInCreate, "POSTGRESQL": ModePostgreSQL, "ORACLE": ModeOracle, "MSSQL": ModeMsSQL, "DB2": ModeDb2, "MAXDB": ModeMaxdb, "NO_KEY_OPTIONS": ModeNoKeyOptions, "NO_TABLE_OPTIONS": ModeNoTableOptions, "NO_FIELD_OPTIONS": ModeNoFieldOptions, "MYSQL323": ModeMySQL323, "MYSQL40": ModeMySQL40, "ANSI": ModeANSI, "NO_AUTO_VALUE_ON_ZERO": ModeNoAutoValueOnZero, "NO_BACKSLASH_ESCAPES": ModeNoBackslashEscapes, "STRICT_TRANS_TABLES": ModeStrictTransTables, "STRICT_ALL_TABLES": ModeStrictAllTables, "NO_ZERO_IN_DATE": ModeNoZeroInDate, "NO_ZERO_DATE": ModeNoZeroDate, "INVALID_DATES": ModeInvalidDates, "ERROR_FOR_DIVISION_BY_ZERO": ModeErrorForDivisionByZero, "TRADITIONAL": ModeTraditional, "NO_AUTO_CREATE_USER": ModeNoAutoCreateUser, "HIGH_NOT_PRECEDENCE": ModeHighNotPrecedence, "NO_ENGINE_SUBSTITUTION": ModeNoEngineSubstitution, "PAD_CHAR_TO_FULL_LENGTH": ModePadCharToFullLength, "ALLOW_INVALID_DATES": ModeAllowInvalidDates, }
Str2SQLMode is the string represent of sql_mode to sql_mode map.
Functions ¶
func FormatSQLModeStr ¶
FormatSQLModeStr re-format 'SQL_MODE' variable.
func GetDefaultFieldLengthAndDecimal ¶
GetDefaultFieldLengthAndDecimal returns the default display length (flen) and decimal length for column. Call this when no Flen assigned in ddl. or column value is calculated from an expression. For example: "select count(*) from t;", the column type is int64 and Flen in ResultField will be 21. See https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
func GetDefaultFieldLengthAndDecimalForCast ¶
GetDefaultFieldLengthAndDecimalForCast returns the default display length (flen) and decimal length for casted column when flen or decimal is not specified.
func HasCursorExistsFlag ¶
HasCursorExistsFlag return true if cursor exists indicated by server status.
func IsIntegerType ¶
IsIntegerType indicate whether tp is an integer type.
Types ¶
type FormatFunc ¶
FormatFunc is the locale format function signature.
func GetLocaleFormatFunction ¶
func GetLocaleFormatFunction(loc string) FormatFunc
GetLocaleFormatFunction get the format function for sepcific locale.
type PriorityEnum ¶
type PriorityEnum int
PriorityEnum is defined for Priority const values.
const ( NoPriority PriorityEnum = iota LowPriority HighPriority DelayedPriority )
Priority const values. See https://dev.mysql.com/doc/refman/5.7/en/insert.html
func Str2Priority ¶
func Str2Priority(val string) PriorityEnum
Str2Priority is used to convert a string to a priority.
func (*PriorityEnum) Restore ¶
func (n *PriorityEnum) Restore(ctx *format.RestoreCtx) error
Restore implements Node interface.
type SQLMode ¶
type SQLMode int
SQLMode is the type for MySQL sql_mode. See https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html
const ( ModeRealAsFloat SQLMode = 1 << iota ModePipesAsConcat ModeANSIQuotes ModeIgnoreSpace ModeNotUsed ModeOnlyFullGroupBy ModeNoUnsignedSubtraction ModeNoDirInCreate ModePostgreSQL ModeOracle ModeMsSQL ModeDb2 ModeMaxdb ModeNoKeyOptions ModeNoTableOptions ModeNoFieldOptions ModeMySQL323 ModeMySQL40 ModeANSI ModeNoAutoValueOnZero ModeNoBackslashEscapes ModeStrictTransTables ModeStrictAllTables ModeNoZeroInDate ModeNoZeroDate ModeInvalidDates ModeErrorForDivisionByZero ModeTraditional ModeNoAutoCreateUser ModeHighNotPrecedence ModeNoEngineSubstitution ModePadCharToFullLength ModeAllowInvalidDates ModeNone = 0 )
consts for sql modes. see https://dev.mysql.com/doc/internals/en/query-event.html#q-sql-mode-code
func GetSQLMode ¶
GetSQLMode gets the sql mode for string literal. SQL_mode is a list of different modes separated by commas. The input string must be formatted by 'FormatSQLModeStr'
func (SQLMode) HasANSIQuotesMode ¶
HasANSIQuotesMode detects if 'ANSI_QUOTES' mode is set in SQLMode
func (SQLMode) HasAllowInvalidDatesMode ¶
HasAllowInvalidDatesMode detects if 'ALLOW_INVALID_DATES' mode is set in SQLMode
func (SQLMode) HasErrorForDivisionByZeroMode ¶
HasErrorForDivisionByZeroMode detects if 'ERROR_FOR_DIVISION_BY_ZERO' mode is set in SQLMode
func (SQLMode) HasHighNotPrecedenceMode ¶
HasHighNotPrecedenceMode detects if 'HIGH_NOT_PRECEDENCE' mode is set in SQLMode
func (SQLMode) HasIgnoreSpaceMode ¶
HasIgnoreSpaceMode detects if 'IGNORE_SPACE' mode is set in SQLMode
func (SQLMode) HasNoAutoCreateUserMode ¶
HasNoAutoCreateUserMode detects if 'NO_AUTO_CREATE_USER' mode is set in SQLMode
func (SQLMode) HasNoBackslashEscapesMode ¶
HasNoBackslashEscapesMode detects if 'NO_BACKSLASH_ESCAPES' mode is set in SQLMode
func (SQLMode) HasNoUnsignedSubtractionMode ¶
HasNoUnsignedSubtractionMode detects if 'NO_UNSIGNED_SUBTRACTION' mode is set in SQLMode
func (SQLMode) HasNoZeroDateMode ¶
HasNoZeroDateMode detects if 'NO_ZERO_DATE' mode is set in SQLMode
func (SQLMode) HasNoZeroInDateMode ¶
HasNoZeroInDateMode detects if 'NO_ZERO_IN_DATE' mode is set in SQLMode
func (SQLMode) HasOnlyFullGroupBy ¶
HasOnlyFullGroupBy detects if 'ONLY_FULL_GROUP_BY' mode is set in SQLMode
func (SQLMode) HasPadCharToFullLengthMode ¶
HasPadCharToFullLengthMode detects if 'PAD_CHAR_TO_FULL_LENGTH' mode is set in SQLMode
func (SQLMode) HasPipesAsConcatMode ¶
HasPipesAsConcatMode detects if 'PIPES_AS_CONCAT' mode is set in SQLMode
func (SQLMode) HasRealAsFloatMode ¶
HasRealAsFloatMode detects if 'REAL_AS_FLOAT' mode is set in SQLMode
func (SQLMode) HasStrictMode ¶
HasStrictMode detects if 'STRICT_TRANS_TABLES' or 'STRICT_ALL_TABLES' mode is set in SQLMode