types

package
v0.0.0-...-4f047be Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2024 License: Apache-2.0 Imports: 10 Imported by: 29

Documentation

Index

Constants

View Source
const (
	UnspecifiedLength = -1
)

UnspecifiedLength is unspecified length.

View Source
const VarStorageLen = -1

VarStorageLen indicates this column is a variable length column.

Variables

View Source
var (
	// ErrInvalidDefault is returned when meet a invalid default value.
	ErrInvalidDefault = terror.ClassTypes.NewStd(mysql.ErrInvalidDefault)
	// ErrDataOutOfRange is returned when meet a value out of range.
	ErrDataOutOfRange = terror.ClassTypes.NewStd(mysql.ErrDataOutOfRange)
	// ErrTruncatedWrongValue is returned when meet a value bigger than
	// 99999999999999999999999999999999999999999999999999999999999999999 during parsing.
	ErrTruncatedWrongValue = terror.ClassTypes.NewStd(mysql.ErrTruncatedWrongValue)
	// ErrIllegalValueForType is returned when strconv.ParseFloat meet strconv.ErrRange during parsing.
	ErrIllegalValueForType = terror.ClassTypes.NewStd(mysql.ErrIllegalValueForType)
)
View Source
var (
	TiDBStrictIntegerDisplayWidth bool
)

TiDBStrictIntegerDisplayWidth represent whether return warnings when integerType with (length) was parsed. The default is `false`, it will be parsed as warning, and the result in show-create-table will ignore the display length when it set to `true`. This is for compatibility with MySQL 8.0 in which integer max display length is deprecated, referring this issue #6688 for more details.

Functions

func HasCharset

func HasCharset(ft *FieldType) bool

HasCharset indicates if a COLUMN has an associated charset. Returning false here prevents some information statements(like `SHOW CREATE TABLE`) from attaching a CHARACTER SET clause to the column.

func IsTypeBlob

func IsTypeBlob(tp byte) bool

IsTypeBlob returns a boolean indicating whether the tp is a blob type.

func IsTypeChar

func IsTypeChar(tp byte) bool

IsTypeChar returns a boolean indicating whether the tp is the char type like a string type or a varchar type.

func IsTypeVector

func IsTypeVector(tp byte) bool

IsTypeVector returns whether tp is a vector type.

func StrToType

func StrToType(ts string) (tp byte)

StrToType convert a string to type enum. Args:

ts: type string

func TypeStr

func TypeStr(tp byte) (r string)

TypeStr converts tp to a string.

func TypeToStr

func TypeToStr(tp byte, cs string) (r string)

TypeToStr converts a field to a string. It is used for converting Text to Blob, or converting Char to Binary. Args:

tp: type enum
cs: charset

Types

type EvalType

type EvalType byte

EvalType indicates the specified types that arguments and result of a built-in function should be.

const (
	// ETInt represents type INT in evaluation.
	ETInt EvalType = iota
	// ETReal represents type REAL in evaluation.
	ETReal
	// ETDecimal represents type DECIMAL in evaluation.
	ETDecimal
	// ETString represents type STRING in evaluation.
	ETString
	// ETDatetime represents type DATETIME in evaluation.
	ETDatetime
	// ETTimestamp represents type TIMESTAMP in evaluation.
	ETTimestamp
	// ETDuration represents type DURATION in evaluation.
	ETDuration
	// ETJson represents type JSON in evaluation.
	ETJson
	// ETVectorFloat32 represents type VectorFloat32 in evaluation.
	ETVectorFloat32
)

func (EvalType) IsStringKind

func (et EvalType) IsStringKind() bool

IsStringKind returns true for ETString, ETDatetime, ETTimestamp, ETDuration, ETJson EvalTypes.

func (EvalType) IsVectorKind

func (et EvalType) IsVectorKind() bool

IsVectorKind returns true for ETVectorXxx EvalTypes.

func (EvalType) String

func (et EvalType) String() string

String implements fmt.Stringer interface.

type FieldType

type FieldType struct {
	// contains filtered or unexported fields
}

FieldType records field type information.

func NewFieldType

func NewFieldType(tp byte) *FieldType

NewFieldType returns a FieldType, with a type and other information about field type.

func (*FieldType) AddFlag

func (ft *FieldType) AddFlag(flag uint)

AddFlag adds a flag to the FieldType.

func (*FieldType) AndFlag

func (ft *FieldType) AndFlag(flag uint)

AndFlag and the flag of the FieldType.

func (*FieldType) ArrayType

func (ft *FieldType) ArrayType() *FieldType

ArrayType return the type of the array.

func (*FieldType) CleanElemIsBinaryLit

func (ft *FieldType) CleanElemIsBinaryLit()

CleanElemIsBinaryLit cleans the binary literal flag of the element at index idx.

func (*FieldType) Clone

func (ft *FieldType) Clone() *FieldType

Clone returns a copy of itself.

func (*FieldType) CompactStr

func (ft *FieldType) CompactStr() string

CompactStr only considers tp/CharsetBin/flen/Deimal. This is used for showing column type in infoschema.

func (*FieldType) DelFlag

func (ft *FieldType) DelFlag(flag uint)

DelFlag delete the flag of the FieldType.

func (*FieldType) Equal

func (ft *FieldType) Equal(other *FieldType) bool

Equal checks whether two FieldType objects are equal.

func (*FieldType) Equals

func (ft *FieldType) Equals(other any) bool

Equals implements the cascades/base.Hasher.<1th> interface.

func (*FieldType) EvalType

func (ft *FieldType) EvalType() EvalType

EvalType gets the type in evaluation.

func (*FieldType) FormatAsCastType

func (ft *FieldType) FormatAsCastType(w io.Writer, explicitCharset bool)

FormatAsCastType is used for write AST back to string.

func (*FieldType) GetCharset

func (ft *FieldType) GetCharset() string

GetCharset returns the field's charset

func (*FieldType) GetCollate

func (ft *FieldType) GetCollate() string

GetCollate returns the collation of the field.

func (*FieldType) GetDecimal

func (ft *FieldType) GetDecimal() int

GetDecimal returns the decimal of the FieldType.

func (*FieldType) GetElem

func (ft *FieldType) GetElem(idx int) string

GetElem returns the element of the FieldType.

func (*FieldType) GetElemIsBinaryLit

func (ft *FieldType) GetElemIsBinaryLit(idx int) bool

GetElemIsBinaryLit returns the binary literal flag of the element at index idx.

func (*FieldType) GetElems

func (ft *FieldType) GetElems() []string

GetElems returns the elements of the FieldType.

func (*FieldType) GetFlag

func (ft *FieldType) GetFlag() uint

GetFlag returns the flag of the FieldType.

func (*FieldType) GetFlen

func (ft *FieldType) GetFlen() int

GetFlen returns the length of the field.

func (*FieldType) GetType

func (ft *FieldType) GetType() byte

GetType returns the type of the FieldType.

func (*FieldType) Hash64

func (ft *FieldType) Hash64(h IHasher)

Hash64 implements the cascades/base.Hasher.<0th> interface.

func (*FieldType) Hybrid

func (ft *FieldType) Hybrid() bool

Hybrid checks whether a type is a hybrid type, which can represent different types of value in specific context.

func (*FieldType) InfoSchemaStr

func (ft *FieldType) InfoSchemaStr() string

InfoSchemaStr joins the CompactStr with unsigned flag and returns a string.

func (*FieldType) Init

func (ft *FieldType) Init(tp byte)

Init initializes the FieldType data.

func (*FieldType) IsArray

func (ft *FieldType) IsArray() bool

IsArray return true if the filed type is array.

func (*FieldType) IsDecimalValid

func (ft *FieldType) IsDecimalValid() bool

IsDecimalValid checks whether the decimal is valid.

func (*FieldType) IsVarLengthType

func (ft *FieldType) IsVarLengthType() bool

IsVarLengthType Determine whether the column type is a variable-length type

func (*FieldType) MarshalJSON

func (ft *FieldType) MarshalJSON() ([]byte, error)

MarshalJSON marshals the FieldType to JSON.

func (*FieldType) MemoryUsage

func (ft *FieldType) MemoryUsage() (sum int64)

MemoryUsage return the memory usage of FieldType

func (*FieldType) PartialEqual

func (ft *FieldType) PartialEqual(other *FieldType, unsafe bool) bool

PartialEqual checks whether two FieldType objects are equal. If unsafe is true and the objects is string type, PartialEqual will ignore flen. See https://github.com/pingcap/tidb/issues/35490#issuecomment-1211658886 for more detail.

func (*FieldType) Restore

func (ft *FieldType) Restore(ctx *format.RestoreCtx) error

Restore implements Node interface.

func (*FieldType) RestoreAsCastType

func (ft *FieldType) RestoreAsCastType(ctx *format.RestoreCtx, explicitCharset bool)

RestoreAsCastType is used for write AST back to string.

func (*FieldType) SetArray

func (ft *FieldType) SetArray(array bool)

SetArray sets the array field of the FieldType.

func (*FieldType) SetCharset

func (ft *FieldType) SetCharset(charset string)

SetCharset sets the charset of the FieldType.

func (*FieldType) SetCollate

func (ft *FieldType) SetCollate(collate string)

SetCollate sets the collation of the FieldType.

func (*FieldType) SetDecimal

func (ft *FieldType) SetDecimal(decimal int)

SetDecimal sets the decimal of the FieldType.

func (*FieldType) SetDecimalUnderLimit

func (ft *FieldType) SetDecimalUnderLimit(decimal int)

SetDecimalUnderLimit sets the decimal of the field to the value of the argument

func (*FieldType) SetElem

func (ft *FieldType) SetElem(idx int, element string)

SetElem sets the element of the FieldType.

func (*FieldType) SetElemWithIsBinaryLit

func (ft *FieldType) SetElemWithIsBinaryLit(idx int, element string, isBinaryLit bool)

SetElemWithIsBinaryLit sets the element of the FieldType.

func (*FieldType) SetElems

func (ft *FieldType) SetElems(elems []string)

SetElems sets the elements of the FieldType.

func (*FieldType) SetFlag

func (ft *FieldType) SetFlag(flag uint)

SetFlag sets the flag of the FieldType.

func (*FieldType) SetFlen

func (ft *FieldType) SetFlen(flen int)

SetFlen sets the length of the field.

func (*FieldType) SetFlenUnderLimit

func (ft *FieldType) SetFlenUnderLimit(flen int)

SetFlenUnderLimit sets the length of the field to the value of the argument

func (*FieldType) SetType

func (ft *FieldType) SetType(tp byte)

SetType sets the type of the FieldType.

func (*FieldType) StorageLength

func (ft *FieldType) StorageLength() int

StorageLength is the length of stored value for the type.

func (*FieldType) String

func (ft *FieldType) String() string

String joins the information of FieldType and returns a string. Note: when flen or decimal is unspecified, this function will use the default value instead of -1.

func (*FieldType) ToggleFlag

func (ft *FieldType) ToggleFlag(flag uint)

ToggleFlag toggle the flag of the FieldType.

func (*FieldType) UnmarshalJSON

func (ft *FieldType) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

func (*FieldType) UpdateFlenAndDecimalUnderLimit

func (ft *FieldType) UpdateFlenAndDecimalUnderLimit(old *FieldType, deltaDecimal int, deltaFlen int)

UpdateFlenAndDecimalUnderLimit updates the length and decimal to the value of the argument

type IHasher

type IHasher interface {
	HashBool(val bool)
	HashInt(val int)
	HashInt64(val int64)
	HashUint64(val uint64)
	HashFloat64(val float64)
	HashRune(val rune)
	HashString(val string)
	HashByte(val byte)
	HashBytes(val []byte)
	Reset()
	Sum64() uint64
}

IHasher is internal usage represent cascades/base.Hasher

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL