Ai
91 Star 503 Fork 153

平凯星辰(北京)科技有限公司/tidb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
type.go 4.58 KB
一键复制 编辑 原始数据 按行查看 历史
Wenxuan Shi 提交于 2017-09-07 16:28 +08:00 . *: rewrite hex and bit literals (#4415)
// Copyright 2015 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.
package mysql
// MySQL type information.
const (
TypeDecimal byte = 0
TypeTiny byte = 1
TypeShort byte = 2
TypeLong byte = 3
TypeFloat byte = 4
TypeDouble byte = 5
TypeNull byte = 6
TypeTimestamp byte = 7
TypeLonglong byte = 8
TypeInt24 byte = 9
TypeDate byte = 10
/* Original name was TypeTime, renamed to Duration to resolve the conflict with Go type Time.*/
TypeDuration byte = 11
TypeDatetime byte = 12
TypeYear byte = 13
TypeNewDate byte = 14
TypeVarchar byte = 15
TypeBit byte = 16
TypeJSON byte = 0xf5
TypeNewDecimal byte = 0xf6
TypeEnum byte = 0xf7
TypeSet byte = 0xf8
TypeTinyBlob byte = 0xf9
TypeMediumBlob byte = 0xfa
TypeLongBlob byte = 0xfb
TypeBlob byte = 0xfc
TypeVarString byte = 0xfd
TypeString byte = 0xfe
TypeGeometry byte = 0xff
)
// TypeUnspecified is an uninitialized type. TypeDecimal is not used in MySQL.
const TypeUnspecified = TypeDecimal
// Flag information.
const (
NotNullFlag uint = 1 /* Field can't be NULL */
PriKeyFlag uint = 2 /* Field is part of a primary key */
UniqueKeyFlag uint = 4 /* Field is part of a unique key */
MultipleKeyFlag uint = 8 /* Field is part of a key */
BlobFlag uint = 16 /* Field is a blob */
UnsignedFlag uint = 32 /* Field is unsigned */
ZerofillFlag uint = 64 /* Field is zerofill */
BinaryFlag uint = 128 /* Field is binary */
EnumFlag uint = 256 /* Field is an enum */
AutoIncrementFlag uint = 512 /* Field is an auto increment field */
TimestampFlag uint = 1024 /* Field is a timestamp */
SetFlag uint = 2048 /* Field is a set */
NoDefaultValueFlag uint = 4096 /* Field doesn't have a default value */
OnUpdateNowFlag uint = 8192 /* Field is set to NOW on UPDATE */
NumFlag uint = 32768 /* Field is a num (for clients) */
PartKeyFlag uint = 16384 /* Intern: Part of some keys */
GroupFlag uint = 32768 /* Intern: Group field */
UniqueFlag uint = 65536 /* Intern: Used by sql_yacc */
BinCmpFlag uint = 131072 /* Intern: Used by sql_yacc */
ParseToJSONFlag uint = 262144 /* Intern: Used when we want to parse string to JSON in CAST */
IsBooleanFlag uint = 524288 /* Intern: Used for telling boolean literal from integer */
)
// TypeInt24 bounds.
const (
MaxUint24 = 1<<24 - 1
MaxInt24 = 1<<23 - 1
MinInt24 = -1 << 23
)
// HasNotNullFlag checks if NotNullFlag is set.
func HasNotNullFlag(flag uint) bool {
return (flag & NotNullFlag) > 0
}
// HasNoDefaultValueFlag checks if NoDefaultValueFlag is set.
func HasNoDefaultValueFlag(flag uint) bool {
return (flag & NoDefaultValueFlag) > 0
}
// HasAutoIncrementFlag checks if AutoIncrementFlag is set.
func HasAutoIncrementFlag(flag uint) bool {
return (flag & AutoIncrementFlag) > 0
}
// HasUnsignedFlag checks if UnsignedFlag is set.
func HasUnsignedFlag(flag uint) bool {
return (flag & UnsignedFlag) > 0
}
// HasZerofillFlag checks if ZerofillFlag is set.
func HasZerofillFlag(flag uint) bool {
return (flag & ZerofillFlag) > 0
}
// HasBinaryFlag checks if BinaryFlag is set.
func HasBinaryFlag(flag uint) bool {
return (flag & BinaryFlag) > 0
}
// HasPriKeyFlag checks if PriKeyFlag is set.
func HasPriKeyFlag(flag uint) bool {
return (flag & PriKeyFlag) > 0
}
// HasUniKeyFlag checks if UniqueKeyFlag is set.
func HasUniKeyFlag(flag uint) bool {
return (flag & UniqueKeyFlag) > 0
}
// HasMultipleKeyFlag checks if MultipleKeyFlag is set.
func HasMultipleKeyFlag(flag uint) bool {
return (flag & MultipleKeyFlag) > 0
}
// HasTimestampFlag checks if HasTimestampFlag is set.
func HasTimestampFlag(flag uint) bool {
return (flag & TimestampFlag) > 0
}
// HasOnUpdateNowFlag checks if OnUpdateNowFlag is set.
func HasOnUpdateNowFlag(flag uint) bool {
return (flag & OnUpdateNowFlag) > 0
}
// HasParseToJSONFlag checks if ParseToJSONFlag is set.
func HasParseToJSONFlag(flag uint) bool {
return (flag & ParseToJSONFlag) > 0
}
// HasIsBooleanFlag checks if IsBooleanFlag is set.
func HasIsBooleanFlag(flag uint) bool {
return (flag & IsBooleanFlag) > 0
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/pingcap/tidb.git
git@gitee.com:pingcap/tidb.git
pingcap
tidb
tidb
v1.1.0-alpha.1

搜索帮助