Versions in this module Expand all Collapse all v1 v1.0.0 Aug 23, 2023 v0 v0.1.0 Aug 23, 2023 Changes in this version + const ASCII + const EXTENDED + const InternalFuncFromBinary + const InternalFuncToBinary + const SHA0 + const SHA224 + const SHA256 + const SHA384 + const SHA512 + const UNICODE + var AllowedPartition4BinaryOpMap = map[opcode.Op]struct + var AllowedPartition4UnaryOpMap = map[opcode.Op]struct + var AllowedPartitionFuncMap = map[string]struct + var CollationStrictness = map[int][]int + var CollationStrictnessGroup = map[string]int + var DefaultExprPushDownBlacklist *atomic.Value + var DeferredFunctions = map[string]struct + var DisableFoldFunctions = map[string]struct + var ErrCutValueGroupConcat = dbterror.ClassExpression.NewStd(mysql.ErrCutValueGroupConcat) + var ErrDivisionByZero = dbterror.ClassExpression.NewStd(mysql.ErrDivisionByZero) + var ErrFunctionsNoopImpl = dbterror.ClassExpression.NewStdErr(mysql.ErrNotSupportedYet, pmysql.Message(...)) + var ErrIncorrectParameterCount = dbterror.ClassExpression.NewStd(mysql.ErrWrongParamcountToNativeFct) + var ErrIncorrectType = dbterror.ClassExpression.NewStd(mysql.ErrIncorrectType) + var ErrInternal = dbterror.ClassOptimizer.NewStd(mysql.ErrInternal) + var ErrInvalidArgumentForLogarithm = dbterror.ClassExpression.NewStd(mysql.ErrInvalidArgumentForLogarithm) + var ErrInvalidTableSample = dbterror.ClassExpression.NewStd(mysql.ErrInvalidTableSample) + var ErrInvalidTypeForJSON = dbterror.ClassExpression.NewStd(mysql.ErrInvalidTypeForJSON) + var ErrNoDB = dbterror.ClassOptimizer.NewStd(mysql.ErrNoDB) + var ErrOperandColumns = dbterror.ClassExpression.NewStd(mysql.ErrOperandColumns) + var ErrRegexp = dbterror.ClassExpression.NewStd(mysql.ErrRegexp) + var EvalAstExpr func(sctx sessionctx.Context, expr ast.ExprNode) (types.Datum, error) + var GeneralPlanCacheableOp = map[string]struct + var IllegalFunctions4GeneratedColumns = map[string]struct + var MaxPropagateColsCnt = 100 + var RewriteAstExpr func(sctx sessionctx.Context, expr ast.ExprNode, schema *Schema, ...) (Expression, error) + var TryFoldFunctions = map[string]struct + var UnCacheableFunctions = map[string]struct + func CalAppropriateTime(minTime, maxTime, minSafeTime time.Time) time.Time + func CanExprsPushDown(sc *stmtctx.StatementContext, exprs []Expression, client kv.Client, ...) bool + func CanExprsPushDownWithExtraInfo(sc *stmtctx.StatementContext, exprs []Expression, client kv.Client, ...) bool + func CanImplicitEvalInt(expr Expression) bool + func CanImplicitEvalReal(expr Expression) bool + func CheckArgsNotMultiColumnRow(args ...Expression) error + func CheckFuncInExpr(e Expression, funcName string) bool + func CheckNonDeterministic(e Expression) bool + func CompareDecimal(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row) (int64, bool, error) + func CompareDuration(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row) (int64, bool, error) + func CompareInt(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row) (int64, bool, error) + func CompareJSON(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row) (int64, bool, error) + func CompareReal(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row) (int64, bool, error) + func CompareStringWithCollationInfo(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row, ...) (int64, bool, error) + func CompareTime(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row) (int64, bool, error) + func ConstructPositionExpr(p *driver.ParamMarkerExpr) *ast.PositionExpr + func ContainCorrelatedColumn(exprs []Expression) bool + func ContainOuterNot(expr Expression) bool + func ContainVirtualColumn(exprs []Expression) bool + func Contains(exprs []Expression, e Expression) bool + func DisableParseJSONFlag4Expr(expr Expression) + func EvalBool(ctx sessionctx.Context, exprList CNFExprs, row chunk.Row) (bool, bool, error) + func EvalExpr(ctx sessionctx.Context, expr Expression, evalType types.EvalType, ...) (err error) + func ExplainColumnList(cols []*Column) []byte + func ExplainExpressionList(exprs []Expression, schema *Schema) string + func ExprFromSchema(expr Expression, schema *Schema) bool + func ExprNotNull(expr Expression) bool + func ExpressionsToPBList(sc *stmtctx.StatementContext, exprs []Expression, client kv.Client) (pbExpr []*tipb.Expr, err error) + func ExtractColumnSet(exprs ...Expression) *intsets.Sparse + func ExtractEquivalenceColumns(result [][]Expression, exprs []Expression) [][]Expression + func FastLocateHashPartition(ctx sessionctx.Context, conds []Expression, piExpr Expression) (int64, bool, bool) + func FieldTypeFromPB(ft *tipb.FieldType) *types.FieldType + func FindFieldName(names types.NameSlice, astCol *ast.ColumnName) (int, error) + func FindFieldNameIdxByColName(names []*types.FieldName, colName string) int + func GcColumnExprIsTidbShard(virtualExpr Expression) bool + func GetAccurateCmpType(lhs, rhs Expression) types.EvalType + func GetBuiltinList() []string + func GetColumn(_ types.EvalType, _ int) (*chunk.Column, error) + func GetDisplayName(name string) string + func GetFormatBytes(bytes float64) string + func GetFormatNanoTime(time float64) string + func GetIntFromConstant(ctx sessionctx.Context, value Expression) (int, bool, error) + func GetMinSafeTime(sessionCtx sessionctx.Context) time.Time + func GetRowLen(e Expression) int + func GetStmtTimestamp(ctx sessionctx.Context) (time.Time, error) + func GetStringFromConstant(ctx sessionctx.Context, value Expression) (string, bool, error) + func GetTimeCurrentTimestamp(ctx sessionctx.Context, tp byte, fsp int) (d types.Datum, err error) + func GetTimeValue(ctx sessionctx.Context, v interface{}, tp byte, fsp int, ...) (d types.Datum, err error) + func GetUint64FromConstant(expr Expression) (uint64, bool, bool) + func GetUsedList(usedCols []*Column, schema *Schema) []bool + func GroupByItemToPB(sc *stmtctx.StatementContext, client kv.Client, expr Expression) *tipb.ByItem + func HandleOverflowOnSelection(sc *stmtctx.StatementContext, val int64, err error) (int64, error) + func HasAssignSetVarFunc(expr Expression) bool + func HasGetSetVarFunc(expr Expression) bool + func InferType4ControlFuncs(ctx sessionctx.Context, funcName string, lexp, rexp Expression) (*types.FieldType, error) + func IsBinaryLiteral(expr Expression) bool + func IsEQCondFromIn(expr Expression) bool + func IsFunctionSupported(name string) bool + func IsMutableEffectsExpr(expr Expression) bool + func IsPushDownEnabled(name string, storeType kv.StoreType) bool + func IsRuntimeConstExpr(expr Expression) bool + func IsValidCurrentTimestampExpr(exprNode ast.ExprNode, fieldType *types.FieldType) bool + func MaybeOverOptimized4PlanCache(ctx sessionctx.Context, exprs []Expression) bool + func PbTypeToFieldType(tp *tipb.FieldType) *types.FieldType + func PosFromPositionExpr(ctx sessionctx.Context, v *ast.PositionExpr) (int, bool, error) + func PropConstOverOuterJoin(ctx sessionctx.Context, joinConds, filterConds []Expression, ...) ([]Expression, []Expression) + func PropagateType(evalType types.EvalType, args ...Expression) + func PushDownExprs(sc *stmtctx.StatementContext, exprs []Expression, client kv.Client, ...) (pushed []Expression, remained []Expression) + func PushDownExprsWithExtraInfo(sc *stmtctx.StatementContext, exprs []Expression, client kv.Client, ...) (pushed []Expression, remained []Expression) + func PutColumn(buf *chunk.Column) + func Quote(str string) string + func ReHashCode(sf *ScalarFunction, sc *stmtctx.StatementContext) + func RemoveMutableConst(ctx sessionctx.Context, exprs []Expression) + func ResolveType4Between(args [3]Expression) types.EvalType + func SetBinFlagOrBinStr(argTp *types.FieldType, resTp *types.FieldType) + func SortByItemToPB(sc *stmtctx.StatementContext, client kv.Client, expr Expression, desc bool) *tipb.ByItem + func SortedExplainExpressionList(exprs []Expression) []byte + func SortedExplainNormalizedExpressionList(exprs []Expression) []byte + func SortedExplainNormalizedScalarFuncList(exprs []*ScalarFunction) []byte + func ToPBFieldType(ft *types.FieldType) *tipb.FieldType + func ToPBFieldTypeWithCheck(ft *types.FieldType, storeType kv.StoreType) (*tipb.FieldType, error) + func VecEvalBool(ctx sessionctx.Context, exprList CNFExprs, input *chunk.Chunk, ...) ([]bool, []bool, error) + func Vectorizable(exprs []Expression) bool + func VectorizedExecute(ctx sessionctx.Context, exprs []Expression, iterator *chunk.Iterator4Chunk, ...) error + func VectorizedFilter(ctx sessionctx.Context, filters []Expression, iterator *chunk.Iterator4Chunk, ...) (_ []bool, err error) + func VectorizedFilterConsiderNull(ctx sessionctx.Context, filters []Expression, iterator *chunk.Iterator4Chunk, ...) ([]bool, []bool, error) + func VerifyArgsWrapper(name string, l int) error + type Assignment struct + Col *Column + ColName model.CIStr + Expr Expression + LazyErr error + func (a *Assignment) MemoryUsage() (sum int64) + type CNFExprs []Expression + func (e CNFExprs) Clone() CNFExprs + func (e CNFExprs) Shallow() CNFExprs + type Coercibility int32 + const CoercibilityCoercible + const CoercibilityExplicit + const CoercibilityIgnorable + const CoercibilityImplicit + const CoercibilityNone + const CoercibilityNumeric + const CoercibilitySysconst + type CollationInfo interface + CharsetAndCollation func() (string, string) + Coercibility func() Coercibility + HasCoercibility func() bool + Repertoire func() Repertoire + SetCharsetAndCollation func(chs, coll string) + SetCoercibility func(val Coercibility) + SetRepertoire func(r Repertoire) + type Column struct + CorrelatedColUniqueID int64 + ID int64 + InOperand bool + Index int + IsHidden bool + IsPrefix bool + OrigName string + RetType *types.FieldType + UniqueID int64 + VirtualExpr Expression + func ColInfo2Col(cols []*Column, col *model.ColumnInfo) *Column + func ColumnInfos2ColumnsAndNames(ctx sessionctx.Context, dbName, tblName model.CIStr, ...) ([]*Column, types.NameSlice, error) + func ExtractColumns(expr Expression) []*Column + func ExtractColumnsAndCorColumnsFromExpressions(result []*Column, list []Expression) []*Column + func ExtractColumnsFromExpressions(result []*Column, exprs []Expression, filter func(*Column) bool) []*Column + func ExtractDependentColumns(expr Expression) []*Column + func FindPrefixOfIndex(cols []*Column, idxColIDs []int64) []*Column + func IndexCol2Col(colInfos []*model.ColumnInfo, cols []*Column, col *model.IndexColumn) *Column + func IndexInfo2Cols(colInfos []*model.ColumnInfo, cols []*Column, index *model.IndexInfo) ([]*Column, []int) + func IndexInfo2PrefixCols(colInfos []*model.ColumnInfo, cols []*Column, index *model.IndexInfo) ([]*Column, []int) + func SortColumns(cols []*Column) []*Column + func (c *Column) CharsetAndCollation() (string, string) + func (c *Column) HasCoercibility() bool + func (c *Column) SetCharsetAndCollation(chs, coll string) + func (c *Column) SetCoercibility(val Coercibility) + func (c *Column) SetRepertoire(r Repertoire) + func (col *Column) CleanHashCode() + func (col *Column) Clone() Expression + func (col *Column) Coercibility() Coercibility + func (col *Column) ConstItem(_ *stmtctx.StatementContext) bool + func (col *Column) Decorrelate(_ *Schema) Expression + func (col *Column) Equal(_ sessionctx.Context, expr Expression) bool + func (col *Column) EqualByExprAndID(_ sessionctx.Context, expr Expression) bool + func (col *Column) Eval(row chunk.Row) (types.Datum, error) + func (col *Column) EvalDecimal(ctx sessionctx.Context, row chunk.Row) (*types.MyDecimal, bool, error) + func (col *Column) EvalDuration(ctx sessionctx.Context, row chunk.Row) (types.Duration, bool, error) + func (col *Column) EvalInt(ctx sessionctx.Context, row chunk.Row) (int64, bool, error) + func (col *Column) EvalJSON(ctx sessionctx.Context, row chunk.Row) (types.BinaryJSON, bool, error) + func (col *Column) EvalReal(ctx sessionctx.Context, row chunk.Row) (float64, bool, error) + func (col *Column) EvalString(ctx sessionctx.Context, row chunk.Row) (string, bool, error) + func (col *Column) EvalTime(ctx sessionctx.Context, row chunk.Row) (types.Time, bool, error) + func (col *Column) EvalVirtualColumn(row chunk.Row) (types.Datum, error) + func (col *Column) ExplainInfo() string + func (col *Column) ExplainNormalizedInfo() string + func (col *Column) GetType() *types.FieldType + func (col *Column) HashCode(_ *stmtctx.StatementContext) []byte + func (col *Column) InColumnArray(cols []*Column) bool + func (col *Column) IsCorrelated() bool + func (col *Column) MarshalJSON() ([]byte, error) + func (col *Column) MemoryUsage() (sum int64) + func (col *Column) RemapColumn(m map[int64]*Column) (Expression, error) + func (col *Column) Repertoire() Repertoire + func (col *Column) ResolveIndices(schema *Schema) (Expression, error) + func (col *Column) ResolveIndicesByVirtualExpr(schema *Schema) (Expression, bool) + func (col *Column) ReverseEval(sc *stmtctx.StatementContext, res types.Datum, rType types.RoundingType) (val types.Datum, err error) + func (col *Column) String() string + func (col *Column) SupportReverseEval() bool + func (col *Column) ToInfo() *model.ColumnInfo + func (col *Column) VecEvalDecimal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *Column) VecEvalDuration(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *Column) VecEvalInt(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *Column) VecEvalJSON(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *Column) VecEvalReal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *Column) VecEvalString(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *Column) VecEvalTime(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *Column) Vectorized() bool + type CompareFunc = func(sctx sessionctx.Context, lhsArg, rhsArg Expression, lhsRow, rhsRow chunk.Row) (int64, bool, error) + func GetCmpFunction(ctx sessionctx.Context, lhs, rhs Expression) CompareFunc + type Constant struct + DeferredExpr Expression + ParamMarker *ParamMarker + RetType *types.FieldType + Value types.Datum + func DatumToConstant(d types.Datum, tp byte, flag uint) *Constant + func NewNull() *Constant + func NewOne() *Constant + func NewZero() *Constant + func ParamMarkerExpression(ctx sessionctx.Context, v *driver.ParamMarkerExpr, needParam bool) (*Constant, error) + func RefineComparedConstant(ctx sessionctx.Context, targetFieldType types.FieldType, con *Constant, ...) (_ *Constant, isExceptional bool) + func (c *Constant) CharsetAndCollation() (string, string) + func (c *Constant) Clone() Expression + func (c *Constant) Coercibility() Coercibility + func (c *Constant) ConstItem(sc *stmtctx.StatementContext) bool + func (c *Constant) Decorrelate(_ *Schema) Expression + func (c *Constant) Equal(ctx sessionctx.Context, b Expression) bool + func (c *Constant) Eval(row chunk.Row) (types.Datum, error) + func (c *Constant) EvalDecimal(ctx sessionctx.Context, row chunk.Row) (*types.MyDecimal, bool, error) + func (c *Constant) EvalDuration(ctx sessionctx.Context, row chunk.Row) (val types.Duration, isNull bool, err error) + func (c *Constant) EvalInt(ctx sessionctx.Context, row chunk.Row) (int64, bool, error) + func (c *Constant) EvalJSON(ctx sessionctx.Context, row chunk.Row) (types.BinaryJSON, bool, error) + func (c *Constant) EvalReal(ctx sessionctx.Context, row chunk.Row) (float64, bool, error) + func (c *Constant) EvalString(ctx sessionctx.Context, row chunk.Row) (string, bool, error) + func (c *Constant) EvalTime(ctx sessionctx.Context, row chunk.Row) (val types.Time, isNull bool, err error) + func (c *Constant) GetType() *types.FieldType + func (c *Constant) HasCoercibility() bool + func (c *Constant) HashCode(sc *stmtctx.StatementContext) []byte + func (c *Constant) IsCorrelated() bool + func (c *Constant) MarshalJSON() ([]byte, error) + func (c *Constant) MemoryUsage() (sum int64) + func (c *Constant) RemapColumn(_ map[int64]*Column) (Expression, error) + func (c *Constant) Repertoire() Repertoire + func (c *Constant) ResolveIndices(_ *Schema) (Expression, error) + func (c *Constant) ResolveIndicesByVirtualExpr(_ *Schema) (Expression, bool) + func (c *Constant) ReverseEval(sc *stmtctx.StatementContext, res types.Datum, rType types.RoundingType) (val types.Datum, err error) + func (c *Constant) SetCharsetAndCollation(chs, coll string) + func (c *Constant) SetCoercibility(val Coercibility) + func (c *Constant) SetRepertoire(r Repertoire) + func (c *Constant) String() string + func (c *Constant) SupportReverseEval() bool + func (c *Constant) VecEvalDecimal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (c *Constant) VecEvalDuration(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (c *Constant) VecEvalInt(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (c *Constant) VecEvalJSON(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (c *Constant) VecEvalReal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (c *Constant) VecEvalString(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (c *Constant) VecEvalTime(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (c *Constant) Vectorized() bool + func (expr *Constant) ExplainInfo() string + func (expr *Constant) ExplainNormalizedInfo() string + type CorrelatedColumn struct + Data *types.Datum + func ExtractCorColumns(expr Expression) (cols []*CorrelatedColumn) + func (c *CorrelatedColumn) CharsetAndCollation() (string, string) + func (c *CorrelatedColumn) HasCoercibility() bool + func (c *CorrelatedColumn) SetCharsetAndCollation(chs, coll string) + func (c *CorrelatedColumn) SetCoercibility(val Coercibility) + func (c *CorrelatedColumn) SetRepertoire(r Repertoire) + func (col *CorrelatedColumn) Clone() Expression + func (col *CorrelatedColumn) ConstItem(_ *stmtctx.StatementContext) bool + func (col *CorrelatedColumn) Decorrelate(schema *Schema) Expression + func (col *CorrelatedColumn) Equal(ctx sessionctx.Context, expr Expression) bool + func (col *CorrelatedColumn) Eval(row chunk.Row) (types.Datum, error) + func (col *CorrelatedColumn) EvalDecimal(ctx sessionctx.Context, row chunk.Row) (*types.MyDecimal, bool, error) + func (col *CorrelatedColumn) EvalDuration(ctx sessionctx.Context, row chunk.Row) (types.Duration, bool, error) + func (col *CorrelatedColumn) EvalInt(ctx sessionctx.Context, row chunk.Row) (int64, bool, error) + func (col *CorrelatedColumn) EvalJSON(ctx sessionctx.Context, row chunk.Row) (types.BinaryJSON, bool, error) + func (col *CorrelatedColumn) EvalReal(ctx sessionctx.Context, row chunk.Row) (float64, bool, error) + func (col *CorrelatedColumn) EvalString(ctx sessionctx.Context, row chunk.Row) (string, bool, error) + func (col *CorrelatedColumn) EvalTime(ctx sessionctx.Context, row chunk.Row) (types.Time, bool, error) + func (col *CorrelatedColumn) IsCorrelated() bool + func (col *CorrelatedColumn) MemoryUsage() (sum int64) + func (col *CorrelatedColumn) RemapColumn(m map[int64]*Column) (Expression, error) + func (col *CorrelatedColumn) ResolveIndices(_ *Schema) (Expression, error) + func (col *CorrelatedColumn) ResolveIndicesByVirtualExpr(_ *Schema) (Expression, bool) + func (col *CorrelatedColumn) VecEvalDecimal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *CorrelatedColumn) VecEvalDuration(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *CorrelatedColumn) VecEvalInt(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *CorrelatedColumn) VecEvalJSON(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *CorrelatedColumn) VecEvalReal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *CorrelatedColumn) VecEvalString(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (col *CorrelatedColumn) VecEvalTime(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + type EvaluatorSuite struct + func NewEvaluatorSuite(exprs []Expression, avoidColumnEvaluator bool) *EvaluatorSuite + func (e *EvaluatorSuite) Run(ctx sessionctx.Context, input, output *chunk.Chunk) error + func (e *EvaluatorSuite) Vectorizable() bool + type ExprCollation struct + Charset string + Coer Coercibility + Collation string + Repe Repertoire + func CheckAndDeriveCollationFromExprs(ctx sessionctx.Context, funcName string, evalType types.EvalType, ...) (et *ExprCollation, err error) + type Expression interface + Clone func() Expression + ConstItem func(sc *stmtctx.StatementContext) bool + Decorrelate func(schema *Schema) Expression + Equal func(ctx sessionctx.Context, e Expression) bool + Eval func(row chunk.Row) (types.Datum, error) + EvalDecimal func(ctx sessionctx.Context, row chunk.Row) (val *types.MyDecimal, isNull bool, err error) + EvalDuration func(ctx sessionctx.Context, row chunk.Row) (val types.Duration, isNull bool, err error) + EvalInt func(ctx sessionctx.Context, row chunk.Row) (val int64, isNull bool, err error) + EvalJSON func(ctx sessionctx.Context, row chunk.Row) (val types.BinaryJSON, isNull bool, err error) + EvalReal func(ctx sessionctx.Context, row chunk.Row) (val float64, isNull bool, err error) + EvalString func(ctx sessionctx.Context, row chunk.Row) (val string, isNull bool, err error) + EvalTime func(ctx sessionctx.Context, row chunk.Row) (val types.Time, isNull bool, err error) + ExplainInfo func() string + ExplainNormalizedInfo func() string + GetType func() *types.FieldType + HashCode func(sc *stmtctx.StatementContext) []byte + IsCorrelated func() bool + MemoryUsage func() int64 + RemapColumn func(map[int64]*Column) (Expression, error) + ResolveIndices func(schema *Schema) (Expression, error) + ResolveIndicesByVirtualExpr func(schema *Schema) (Expression, bool) + func Args2Expressions4Test(args ...interface{}) []Expression + func BuildCastCollationFunction(ctx sessionctx.Context, expr Expression, ec *ExprCollation, ...) Expression + func BuildCastFunction(ctx sessionctx.Context, expr Expression, tp *types.FieldType) (res Expression) + func BuildCastFunction4Union(ctx sessionctx.Context, expr Expression, tp *types.FieldType) (res Expression) + func BuildFromBinaryFunction(ctx sessionctx.Context, expr Expression, tp *types.FieldType) (res Expression) + func BuildGetVarFunction(ctx sessionctx.Context, expr Expression, retType *types.FieldType) (Expression, error) + func BuildNotNullExpr(ctx sessionctx.Context, expr Expression) Expression + func BuildToBinaryFunction(ctx sessionctx.Context, expr Expression) (res Expression) + func Column2Exprs(cols []*Column) []Expression + func ColumnSubstitute(expr Expression, schema *Schema, newExprs []Expression) Expression + func ColumnSubstituteAll(expr Expression, schema *Schema, newExprs []Expression) (bool, Expression) + func ColumnSubstituteImpl(expr Expression, schema *Schema, newExprs []Expression, fail1Return bool) (bool, bool, Expression) + func ComposeCNFCondition(ctx sessionctx.Context, conditions ...Expression) Expression + func ComposeDNFCondition(ctx sessionctx.Context, conditions ...Expression) Expression + func DeriveRelaxedFiltersFromDNF(expr Expression, schema *Schema) Expression + func EvaluateExprWithNull(ctx sessionctx.Context, schema *Schema, expr Expression) Expression + func ExtractConstantEqColumnsOrScalar(ctx sessionctx.Context, result []Expression, exprs []Expression) []Expression + func ExtractFiltersFromDNFs(ctx sessionctx.Context, conditions []Expression) []Expression + func Filter(result []Expression, input []Expression, filter func(Expression) bool) []Expression + func FilterOutInPlace(input []Expression, filter func(Expression) bool) (remained, filteredOut []Expression) + func FlattenCNFConditions(CNFCondition *ScalarFunction) []Expression + func FlattenDNFConditions(DNFCondition *ScalarFunction) []Expression + func FoldConstant(expr Expression) Expression + func GetExprInsideIsTruth(expr Expression) Expression + func GetFuncArg(e Expression, idx int) Expression + func HandleBinaryLiteral(ctx sessionctx.Context, expr Expression, ec *ExprCollation, funcName string) Expression + func NewFunction(ctx sessionctx.Context, funcName string, retType *types.FieldType, ...) (Expression, error) + func NewFunctionBase(ctx sessionctx.Context, funcName string, retType *types.FieldType, ...) (Expression, error) + func NewFunctionInternal(ctx sessionctx.Context, funcName string, retType *types.FieldType, ...) Expression + func NewFunctionTryFold(ctx sessionctx.Context, funcName string, retType *types.FieldType, ...) (Expression, error) + func PBToExpr(expr *tipb.Expr, tps []*types.FieldType, sc *stmtctx.StatementContext) (Expression, error) + func PBToExprs(pbExprs []*tipb.Expr, fieldTps []*types.FieldType, ...) ([]Expression, error) + func ParseSimpleExprCastWithTableInfo(ctx sessionctx.Context, exprStr string, tableInfo *model.TableInfo, ...) (Expression, error) + func ParseSimpleExprWithTableInfo(ctx sessionctx.Context, exprStr string, tableInfo *model.TableInfo) (Expression, error) + func ParseSimpleExprsWithNames(ctx sessionctx.Context, exprStr string, schema *Schema, names types.NameSlice) ([]Expression, error) + func PopRowFirstArg(ctx sessionctx.Context, e Expression) (ret Expression, err error) + func PropagateConstant(ctx sessionctx.Context, conditions []Expression) []Expression + func PushDownNot(ctx sessionctx.Context, expr Expression) Expression + func RemoveDupExprs(ctx sessionctx.Context, exprs []Expression) []Expression + func RewriteSimpleExprWithNames(ctx sessionctx.Context, expr ast.ExprNode, schema *Schema, ...) (Expression, error) + func RewriteSimpleExprWithTableInfo(ctx sessionctx.Context, tbl *model.TableInfo, expr ast.ExprNode) (Expression, error) + func ScalarFuncs2Exprs(funcs []*ScalarFunction) []Expression + func SetExprColumnInOperand(expr Expression) Expression + func SplitCNFItems(onExpr Expression) []Expression + func SplitDNFItems(onExpr Expression) []Expression + func SubstituteCorCol2Constant(expr Expression) (Expression, error) + func TryPushCastIntoControlFunctionForHybridType(ctx sessionctx.Context, expr Expression, tp *types.FieldType) (res Expression) + func WrapWithCastAsDecimal(ctx sessionctx.Context, expr Expression) Expression + func WrapWithCastAsDuration(ctx sessionctx.Context, expr Expression) Expression + func WrapWithCastAsInt(ctx sessionctx.Context, expr Expression) Expression + func WrapWithCastAsJSON(ctx sessionctx.Context, expr Expression) Expression + func WrapWithCastAsReal(ctx sessionctx.Context, expr Expression) Expression + func WrapWithCastAsString(ctx sessionctx.Context, expr Expression) Expression + func WrapWithCastAsTime(ctx sessionctx.Context, expr Expression, tp *types.FieldType) Expression + type GLCmpStringMode uint8 + const GLCmpStringAsDate + const GLCmpStringAsDatetime + const GLCmpStringDirectly + type GLRetTimeType uint8 + const GLRetDate + const GLRetDatetime + const GLRetNoneTemporal + type KeyInfo []*Column + func (ki KeyInfo) Clone() KeyInfo + func (ki KeyInfo) String() string + type ParamMarker struct + func (d *ParamMarker) GetUserVar() types.Datum + type ParamMarkerInPrepareChecker struct + InPrepareStmt bool + func (pc *ParamMarkerInPrepareChecker) Enter(in ast.Node) (out ast.Node, skipChildren bool) + func (pc *ParamMarkerInPrepareChecker) Leave(in ast.Node) (out ast.Node, ok bool) + type PbConverter struct + func NewPBConverter(client kv.Client, sc *stmtctx.StatementContext) PbConverter + func (pc PbConverter) ExprToPB(expr Expression) *tipb.Expr + type PropagateConstantSolver interface + PropagateConstant func(ctx sessionctx.Context, conditions []Expression) []Expression + type Repertoire int + type ReverseExpr interface + ReverseEval func(sc *stmtctx.StatementContext, res types.Datum, rType types.RoundingType) (val types.Datum, err error) + SupportReverseEval func() bool + type SQLDigestTextRetriever struct + SQLDigestsMap map[string]string + func NewSQLDigestTextRetriever() *SQLDigestTextRetriever + func (r *SQLDigestTextRetriever) RetrieveGlobal(ctx context.Context, sctx sessionctx.Context) error + func (r *SQLDigestTextRetriever) RetrieveLocal(ctx context.Context, sctx sessionctx.Context) error + type ScalarFunction struct + FuncName model.CIStr + Function builtinFunc + RetType *types.FieldType + func NewValuesFunc(ctx sessionctx.Context, offset int, retTp *types.FieldType) *ScalarFunction + func (expr *ScalarFunction) ExplainInfo() string + func (expr *ScalarFunction) ExplainNormalizedInfo() string + func (sf *ScalarFunction) CharsetAndCollation() (string, string) + func (sf *ScalarFunction) Clone() Expression + func (sf *ScalarFunction) Coercibility() Coercibility + func (sf *ScalarFunction) ConstItem(sc *stmtctx.StatementContext) bool + func (sf *ScalarFunction) Decorrelate(schema *Schema) Expression + func (sf *ScalarFunction) Equal(ctx sessionctx.Context, e Expression) bool + func (sf *ScalarFunction) Eval(row chunk.Row) (d types.Datum, err error) + func (sf *ScalarFunction) EvalDecimal(ctx sessionctx.Context, row chunk.Row) (*types.MyDecimal, bool, error) + func (sf *ScalarFunction) EvalDuration(ctx sessionctx.Context, row chunk.Row) (types.Duration, bool, error) + func (sf *ScalarFunction) EvalInt(ctx sessionctx.Context, row chunk.Row) (int64, bool, error) + func (sf *ScalarFunction) EvalJSON(ctx sessionctx.Context, row chunk.Row) (types.BinaryJSON, bool, error) + func (sf *ScalarFunction) EvalReal(ctx sessionctx.Context, row chunk.Row) (float64, bool, error) + func (sf *ScalarFunction) EvalString(ctx sessionctx.Context, row chunk.Row) (string, bool, error) + func (sf *ScalarFunction) EvalTime(ctx sessionctx.Context, row chunk.Row) (types.Time, bool, error) + func (sf *ScalarFunction) GetArgs() []Expression + func (sf *ScalarFunction) GetCtx() sessionctx.Context + func (sf *ScalarFunction) GetSingleColumn(reverse bool) (*Column, bool) + func (sf *ScalarFunction) GetType() *types.FieldType + func (sf *ScalarFunction) HasCoercibility() bool + func (sf *ScalarFunction) HashCode(sc *stmtctx.StatementContext) []byte + func (sf *ScalarFunction) IsCorrelated() bool + func (sf *ScalarFunction) MarshalJSON() ([]byte, error) + func (sf *ScalarFunction) MemoryUsage() (sum int64) + func (sf *ScalarFunction) RemapColumn(m map[int64]*Column) (Expression, error) + func (sf *ScalarFunction) Repertoire() Repertoire + func (sf *ScalarFunction) ResolveIndices(schema *Schema) (Expression, error) + func (sf *ScalarFunction) ResolveIndicesByVirtualExpr(schema *Schema) (Expression, bool) + func (sf *ScalarFunction) ReverseEval(sc *stmtctx.StatementContext, res types.Datum, rType types.RoundingType) (val types.Datum, err error) + func (sf *ScalarFunction) SetCharsetAndCollation(chs, coll string) + func (sf *ScalarFunction) SetCoercibility(val Coercibility) + func (sf *ScalarFunction) SetRepertoire(r Repertoire) + func (sf *ScalarFunction) String() string + func (sf *ScalarFunction) SupportReverseEval() bool + func (sf *ScalarFunction) VecEvalDecimal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (sf *ScalarFunction) VecEvalDuration(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (sf *ScalarFunction) VecEvalInt(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (sf *ScalarFunction) VecEvalJSON(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (sf *ScalarFunction) VecEvalReal(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (sf *ScalarFunction) VecEvalString(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (sf *ScalarFunction) VecEvalTime(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + func (sf *ScalarFunction) Vectorized() bool + type Schema struct + Columns []*Column + Keys []KeyInfo + UniqueKeys []KeyInfo + func MergeSchema(lSchema, rSchema *Schema) *Schema + func NewSchema(cols ...*Column) *Schema + func TableInfo2SchemaAndNames(ctx sessionctx.Context, dbName model.CIStr, tbl *model.TableInfo) (*Schema, []*types.FieldName, error) + func (s *Schema) Append(col ...*Column) + func (s *Schema) Clone() *Schema + func (s *Schema) ColumnIndex(col *Column) int + func (s *Schema) ColumnsByIndices(offsets []int) []*Column + func (s *Schema) ColumnsIndices(cols []*Column) (ret []int) + func (s *Schema) Contains(col *Column) bool + func (s *Schema) ExtractColGroups(colGroups [][]*Column) ([][]int, []int) + func (s *Schema) GetExtraHandleColumn() *Column + func (s *Schema) IsUnique(col *Column) bool + func (s *Schema) IsUniqueKey(col *Column) bool + func (s *Schema) Len() int + func (s *Schema) MemoryUsage() (sum int64) + func (s *Schema) RetrieveColumn(col *Column) *Column + func (s *Schema) SetUniqueKeys(keys []KeyInfo) + func (s *Schema) String() string + type TiDBDecodeKeyFunctionKeyType int + const TiDBDecodeKeyFunctionKey + func (k TiDBDecodeKeyFunctionKeyType) String() string + type VarAssignment struct + Expr Expression + ExtendValue *Constant + IsDefault bool + IsGlobal bool + IsSystem bool + Name string + type VecExpr interface + VecEvalDecimal func(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + VecEvalDuration func(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + VecEvalInt func(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + VecEvalJSON func(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + VecEvalReal func(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + VecEvalString func(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + VecEvalTime func(ctx sessionctx.Context, input *chunk.Chunk, result *chunk.Column) error + Vectorized func() bool