Documentation ¶
Overview ¶
Package plan is a generated GoMock package.
Index ¶
- Constants
- Variables
- func BuildVectorsByData(datas [][2]any, dataTypes []uint8, mp *mpool.MPool) []*vector.Vector
- func CheckExprIsMonotonic(ctx context.Context, expr *plan.Expr) bool
- func ConstantFold(bat *batch.Batch, e *plan.Expr, proc *process.Process) (*plan.Expr, error)
- func DeepCopyAnalyzeInfo(analyzeinfo *plan.AnalyzeInfo) *plan.AnalyzeInfo
- func DeepCopyClusterTable(cluster *plan.ClusterTable) *plan.ClusterTable
- func DeepCopyColData(col *plan.ColData) *plan.ColData
- func DeepCopyColDef(col *plan.ColDef) *plan.ColDef
- func DeepCopyDataDefinition(old *plan.DataDefinition) *plan.DataDefinition
- func DeepCopyDefault(def *plan.Default) *plan.Default
- func DeepCopyDeleteCtx(ctx *plan.DeleteCtx) *plan.DeleteCtx
- func DeepCopyIndexDef(indexDef *plan.IndexDef) *plan.IndexDef
- func DeepCopyInsertCtx(ctx *plan.InsertCtx) *plan.InsertCtx
- func DeepCopyNode(node *plan.Node) *plan.Node
- func DeepCopyObjectRef(ref *plan.ObjectRef) *plan.ObjectRef
- func DeepCopyOnUpdate(old *plan.OnUpdate) *plan.OnUpdate
- func DeepCopyOrderBy(orderBy *plan.OrderBySpec) *plan.OrderBySpec
- func DeepCopyPrimaryKeyDef(pkeyDef *plan.PrimaryKeyDef) *plan.PrimaryKeyDef
- func DeepCopyQuery(qry *plan.Query) *plan.Query
- func DeepCopyTableDef(table *plan.TableDef) *plan.TableDef
- func DeepCopyTyp(typ *plan.Type) *plan.Type
- func DeepCopyUpdateCtx(ctx *plan.UpdateCtx) *plan.UpdateCtx
- func DefaultStats() *plan.Stats
- func EvalFilterExpr(ctx context.Context, expr *plan.Expr, bat *batch.Batch, proc *process.Process) (bool, error)
- func EvalPlanExpr(ctx context.Context, expr *plan.Expr, process *process.Process) (*plan.Expr, error)
- func GetBindings(expr *plan.Expr) []int32
- func GetColumnsByExpr(expr *plan.Expr, tableDef *plan.TableDef) (map[int]int, []int, int)
- func GetForETLWithType(param *tree.ExternParam, prefix string) (res fileservice.ETLFileService, readPath string, err error)
- func GetProjectNode(stmt *tree.Load, ctx CompilerContext, node *plan.Node, ...) error
- func GetTablePriKeyName(cols []*plan.ColDef, cPkeyCol *plan.ColDef) string
- func HandleFiltersForZM(exprList []*plan.Expr, proc *process.Process) *plan.Expr
- func InitInfileParam(param *tree.ExternParam) error
- func InitNullMap(param *tree.ExternParam, ctx CompilerContext) error
- func InitS3Param(param *tree.ExternParam) error
- func MakeExpr(ctx context.Context, name string, args []*Expr) *plan.Expr
- func MakePlan2NullTextConstExprWithType(v string) *plan.Expr
- func ReCalcNodeStats(nodeID int32, builder *QueryBuilder, recursive bool)
- func ReadDir(param *tree.ExternParam) (fileList []string, fileSize []int64, err error)
- type BaseOptimizer
- type BindContext
- type Binder
- type Binding
- type BindingTreeNode
- type CTERef
- type ClusterByDef
- type ClusterTable
- type ColDef
- type ColRef
- type ColRefRemapping
- type CompilerContext
- type Const
- type ConstantFoldRule
- type CreateTable_FkColName
- type DefaultBinder
- func (b *DefaultBinder) BindAggFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *DefaultBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *DefaultBinder) BindExpr(astExpr tree.Expr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *DefaultBinder) BindSubquery(astExpr *tree.Subquery, isRoot bool) (*plan.Expr, error)
- func (b *DefaultBinder) BindWinFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *DefaultBinder) GetContext() context.Context
- type ExecInfo
- type ExecType
- type Expr
- type ForeignKeyDef
- type GetParamRule
- type GroupBinder
- func (b *GroupBinder) BindAggFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *GroupBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *GroupBinder) BindExpr(astExpr tree.Expr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *GroupBinder) BindSubquery(astExpr *tree.Subquery, isRoot bool) (*plan.Expr, error)
- func (b *GroupBinder) BindWinFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *GroupBinder) GetContext() context.Context
- type HavingBinder
- func (b *HavingBinder) BindAggFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *HavingBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *HavingBinder) BindExpr(astExpr tree.Expr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *HavingBinder) BindSubquery(astExpr *tree.Subquery, isRoot bool) (*plan.Expr, error)
- func (b *HavingBinder) BindWinFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *HavingBinder) GetContext() context.Context
- type IndexDef
- type LimitBinder
- func (b *LimitBinder) BindAggFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *LimitBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *LimitBinder) BindExpr(astExpr tree.Expr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *LimitBinder) BindSubquery(astExpr *tree.Subquery, isRoot bool) (*plan.Expr, error)
- func (b *LimitBinder) BindWinFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *LimitBinder) GetContext() context.Context
- type MaxValue
- type MockBinder
- func (m *MockBinder) BindAggFunc(arg0 string, arg1 *tree.FuncExpr, arg2 int32, arg3 bool) (*plan.Expr, error)
- func (m *MockBinder) BindColRef(arg0 *tree.UnresolvedName, arg1 int32, arg2 bool) (*plan.Expr, error)
- func (m *MockBinder) BindExpr(arg0 tree.Expr, arg1 int32, arg2 bool) (*plan.Expr, error)
- func (m *MockBinder) BindSubquery(arg0 *tree.Subquery, arg1 bool) (*plan.Expr, error)
- func (m *MockBinder) BindWinFunc(arg0 string, arg1 *tree.FuncExpr, arg2 int32, arg3 bool) (*plan.Expr, error)
- func (m *MockBinder) EXPECT() *MockBinderMockRecorder
- func (m *MockBinder) GetContext() context.Context
- type MockBinderMockRecorder
- func (mr *MockBinderMockRecorder) BindAggFunc(arg0, arg1, arg2, arg3 interface{}) *gomock.Call
- func (mr *MockBinderMockRecorder) BindColRef(arg0, arg1, arg2 interface{}) *gomock.Call
- func (mr *MockBinderMockRecorder) BindExpr(arg0, arg1, arg2 interface{}) *gomock.Call
- func (mr *MockBinderMockRecorder) BindSubquery(arg0, arg1 interface{}) *gomock.Call
- func (mr *MockBinderMockRecorder) BindWinFunc(arg0, arg1, arg2, arg3 interface{}) *gomock.Call
- func (mr *MockBinderMockRecorder) GetContext() *gomock.Call
- type MockCompilerContext
- func (m *MockCompilerContext) DatabaseExists(name string) bool
- func (m *MockCompilerContext) DefaultDatabase() string
- func (m *MockCompilerContext) GetAccountId() uint32
- func (m *MockCompilerContext) GetBuildingAlterView() (bool, string, string)
- func (m *MockCompilerContext) GetContext() context.Context
- func (m *MockCompilerContext) GetHideKeyDef(dbName string, tableName string) *ColDef
- func (m *MockCompilerContext) GetPrimaryKeyDef(dbName string, tableName string) []*ColDef
- func (m *MockCompilerContext) GetProcess() *process.Process
- func (m *MockCompilerContext) GetQueryResultMeta(uuid string) ([]*ColDef, string, error)
- func (m *MockCompilerContext) GetRootSql() string
- func (m *MockCompilerContext) GetUserName() string
- func (m *MockCompilerContext) Resolve(dbName string, tableName string) (*ObjectRef, *TableDef)
- func (m *MockCompilerContext) ResolveAccountIds(accountNames []string) ([]uint32, error)
- func (m *MockCompilerContext) ResolveById(tableId uint64) (*ObjectRef, *TableDef)
- func (m *MockCompilerContext) ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error)
- func (m *MockCompilerContext) SetBuildingAlterView(yesOrNo bool, dbName, viewName string)
- func (m *MockCompilerContext) Stats(obj *ObjectRef, e *Expr) *Stats
- type MockCompilerContext2
- func (m *MockCompilerContext2) DatabaseExists(name string) bool
- func (m *MockCompilerContext2) DefaultDatabase() string
- func (m *MockCompilerContext2) EXPECT() *MockCompilerContext2MockRecorder
- func (m *MockCompilerContext2) GetAccountId() uint32
- func (m *MockCompilerContext2) GetBuildingAlterView() (bool, string, string)
- func (m *MockCompilerContext2) GetContext() context.Context
- func (m *MockCompilerContext2) GetHideKeyDef(dbName, tableName string) *plan.ColDef
- func (m *MockCompilerContext2) GetPrimaryKeyDef(dbName, tableName string) []*plan.ColDef
- func (m *MockCompilerContext2) GetProcess() *process.Process
- func (m *MockCompilerContext2) GetQueryResultMeta(uuid string) ([]*plan.ColDef, string, error)
- func (m *MockCompilerContext2) GetRootSql() string
- func (m *MockCompilerContext2) GetUserName() string
- func (m *MockCompilerContext2) Resolve(schemaName, tableName string) (*plan.ObjectRef, *plan.TableDef)
- func (m *MockCompilerContext2) ResolveAccountIds(accountNames []string) ([]uint32, error)
- func (m *MockCompilerContext2) ResolveById(tableId uint64) (*plan.ObjectRef, *plan.TableDef)
- func (m *MockCompilerContext2) ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error)
- func (m *MockCompilerContext2) SetBuildingAlterView(yesOrNo bool, dbName, viewName string)
- func (m *MockCompilerContext2) Stats(obj *plan.ObjectRef, e *plan.Expr) *plan.Stats
- type MockCompilerContext2MockRecorder
- func (mr *MockCompilerContext2MockRecorder) DatabaseExists(name interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) DefaultDatabase() *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetAccountId() *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetBuildingAlterView() *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetContext() *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetHideKeyDef(dbName, tableName interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetPrimaryKeyDef(dbName, tableName interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetProcess() *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetQueryResultMeta(uuid interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetRootSql() *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) GetUserName() *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) Resolve(schemaName, tableName interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) ResolveAccountIds(accountNames interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) ResolveById(tableId interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) ResolveVariable(varName, isSystemVar, isGlobalVar interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) SetBuildingAlterView(yesOrNo, dbName, viewName interface{}) *gomock.Call
- func (mr *MockCompilerContext2MockRecorder) Stats(obj, e interface{}) *gomock.Call
- type MockOptimizer
- type MockOptimizer2
- type MockOptimizer2MockRecorder
- type MockRule
- type MockRuleMockRecorder
- type NameTuple
- type Node
- type ObjectRef
- type Optimizer
- type OrderBinder
- type OrderBySpec
- type PartitionBinder
- func (p *PartitionBinder) BindAggFunc(s string, expr *tree.FuncExpr, i int32, b bool) (*plan.Expr, error)
- func (p *PartitionBinder) BindColRef(name *tree.UnresolvedName, i int32, b bool) (*plan.Expr, error)
- func (p *PartitionBinder) BindExpr(expr tree.Expr, i int32, b bool) (*plan.Expr, error)
- func (p *PartitionBinder) BindSubquery(subquery *tree.Subquery, b bool) (*plan.Expr, error)
- func (p *PartitionBinder) BindWinFunc(s string, expr *tree.FuncExpr, i int32, b bool) (*plan.Expr, error)
- func (b *PartitionBinder) GetContext() context.Context
- type PartitionByDef
- type Plan
- type Plan_Query
- type PrimaryKeyDef
- type ProjectionBinder
- func (b *ProjectionBinder) BindAggFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *ProjectionBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *ProjectionBinder) BindExpr(astExpr tree.Expr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *ProjectionBinder) BindSubquery(astExpr *tree.Subquery, isRoot bool) (*plan.Expr, error)
- func (b *ProjectionBinder) BindWinFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *ProjectionBinder) GetContext() context.Context
- type PropertiesDef
- type Property
- type Query
- type QueryBuilder
- type RecomputeRealTimeRelatedFuncRule
- type ResetParamOrderRule
- type ResetParamRefRule
- type ResetVarRefRule
- type RowsetData
- type Rule
- type Schema
- type Stats
- type TableBinder
- func (b *TableBinder) BindAggFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *TableBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *TableBinder) BindExpr(astExpr tree.Expr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *TableBinder) BindSubquery(astExpr *tree.Subquery, isRoot bool) (*plan.Expr, error)
- func (b *TableBinder) BindWinFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *TableBinder) GetContext() context.Context
- type TableDef
- type TableDefType
- type TableDef_DefType_Properties
- type Type
- type ViewData
- type ViewDef
- type VisitPlan
- type VisitPlanRule
- type WhereBinder
- func (b *WhereBinder) BindAggFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *WhereBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *WhereBinder) BindExpr(astExpr tree.Expr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *WhereBinder) BindSubquery(astExpr *tree.Subquery, isRoot bool) (*plan.Expr, error)
- func (b *WhereBinder) BindWinFunc(funcName string, astExpr *tree.FuncExpr, depth int32, isRoot bool) (*plan.Expr, error)
- func (b *WhereBinder) GetContext() context.Context
Constants ¶
const ( JoinSideNone int8 = 0 JoinSideLeft = 1 << iota JoinSideRight = 1 << iota JoinSideBoth = JoinSideLeft | JoinSideRight JoinSideMark = 1 << iota )
const INFORMATION_SCHEMA = "information_schema"
const MO_CATALOG_DB_NAME = "mo_catalog"
const MO_DEFUALT_HOSTNAME = "localhost"
const (
// Reference link https://dev.mysql.com/doc/mysql-reslimits-excerpt/5.6/en/partitioning-limitations.html
PartitionNumberLimit = 8192
)
const SF float64 = 1
Variables ¶
var AllowedPartition4BinaryOpMap = map[tree.BinaryOp]string{ tree.PLUS: "+", tree.MINUS: "-", tree.MULTI: "*", tree.INTEGER_DIV: "div", tree.MOD: "%", }
AllowedPartition4BinaryOpMap store the operator for Binary Expr link ref:https://dev.mysql.com/doc/refman/8.0/en/partitioning-limitations.html
var AllowedPartition4UnaryOpMap = map[tree.UnaryOp]string{ tree.UNARY_PLUS: "+", tree.UNARY_MINUS: "-", }
AllowedPartition4UnaryOpMap store the operator for Unary Expr
var AllowedPartitionFuncMap = map[string]int{
"to_days": 1,
"to_seconds": 1,
"dayofmonth": 1,
"month": 1,
"dayofyear": 1,
"quarter": 1,
"yearweek": 1,
"year": 1,
"weekday": 1,
"dayofweek": 1,
"day": 1,
"hour": 1,
"minute": 1,
"second": 1,
"time_to_sec": 1,
"microsecond": 1,
"unix_timestamp": 1,
"from_days": 1,
"extract": 1,
"abs": 1,
"ceiling": 1,
"ceil": 1,
"datediff": 1,
"floor": 1,
"mod": 1,
}
Continue to use this function in the future. Do not delete this function temporarily. Please call @qingxinhome
// checkPartitionFuncValid checks partition function validly.
func checkPartitionFuncValid(ctx context.Context, tbdef *TableDef, partby tree.PartitionBy) error { if partby.PType == nil { return nil } checker := &partitionExprChecker{ processors: []partitionExprProcessor{checkPartitionExprAllowed}, tbdef: tbdef, err: nil, } switch partitionType := partby.PType.(type) { case *tree.KeyType: if partitionType.ColumnList != nil { for _, expr := range partitionType.ColumnList { PartitionExprSemanticCheck(ctx, tbdef, expr, checker) if checker.err != nil { return checker.err } } } case *tree.HashType: PartitionExprSemanticCheck(ctx, tbdef, partitionType.Expr, checker) if checker.err != nil { return checker.err } case *tree.RangeType: if partitionType.ColumnList != nil { for _, expr := range partitionType.ColumnList { PartitionExprSemanticCheck(ctx, tbdef, expr, checker) if checker.err != nil { return checker.err } } } else { PartitionExprSemanticCheck(ctx, tbdef, partitionType.Expr, checker) if checker.err != nil { return checker.err } } case *tree.ListType: if partitionType.ColumnList != nil { for _, expr := range partitionType.ColumnList { PartitionExprSemanticCheck(ctx, tbdef, expr, checker) if checker.err != nil { return checker.err } } } else { PartitionExprSemanticCheck(ctx, tbdef, partitionType.Expr, checker) if checker.err != nil { return checker.err } } } return nil }
type partitionExprProcessor func(ctx context.Context, def *TableDef, expr tree.Expr) error
type partitionExprChecker struct { processors []partitionExprProcessor tbdef *TableDef err error }
func PartitionExprSemanticCheck(ctx context.Context, tbdef *TableDef, expr tree.Expr, checker *partitionExprChecker) (canNext bool) { for _, processor := range checker.processors { if err := processor(ctx, tbdef, expr); err != nil { checker.err = err return false } } switch v := expr.(type) { case *tree.FuncExpr: for _, e := range v.Exprs { next := PartitionExprSemanticCheck(ctx, tbdef, e, checker) if !next { return next } } case *tree.BinaryExpr: next := PartitionExprSemanticCheck(ctx, tbdef, v.Left, checker) if !next { return next } next = PartitionExprSemanticCheck(ctx, tbdef, v.Right, checker) if !next { return next } case *tree.UnaryExpr: next := PartitionExprSemanticCheck(ctx, tbdef, v.Expr, checker) if !next { return next } case *tree.ParenExpr: next := PartitionExprSemanticCheck(ctx, tbdef, v.Expr, checker) if !next { return next } case *tree.UnresolvedName: return false case *tree.MaxValue: return false default: checker.err = moerr.NewInternalError(ctx, "This partition function is not allowed") return false } return true }
func checkPartitionExprAllowed(ctx context.Context, tb *TableDef, e tree.Expr) error { switch v := e.(type) { case *tree.FuncExpr: funcRef, ok := v.Func.FunctionReference.(*tree.UnresolvedName) if !ok { return moerr.NewNYI(ctx, "function expr '%v'", v) } funcName := funcRef.Parts[0] if _, ok = AllowedPartitionFuncMap[funcName]; ok { return nil } case *tree.BinaryExpr: if _, ok := AllowedPartition4BinaryOpMap[v.Op]; ok { return checkNoTimestampArgs(ctx, tb, v.Left, v.Right) } case *tree.UnaryExpr: if _, ok := AllowedPartition4UnaryOpMap[v.Op]; ok { return checkNoTimestampArgs(ctx, tb, v.Expr) } case *tree.ParenExpr, *tree.MaxValue, *tree.UnresolvedName: return nil } return moerr.NewInternalError(ctx, "This partition function is not allowed") }
func checkNoTimestampArgs(ctx context.Context, tbInfo *TableDef, exprs ...tree.Expr) error { argsType, err := collectArgsType(ctx, tbInfo, exprs...) if err != nil { return err } if hasTimestampArgs(argsType...) { return moerr.NewInternalError(ctx, "Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed") } return nil }
func collectArgsType(ctx context.Context, tblInfo *TableDef, exprs ...tree.Expr) ([]*Type, error) { ts := make([]*Type, 0, len(exprs)) for _, arg := range exprs { col, ok := arg.(*tree.UnresolvedName) if !ok { continue } columnInfo := findColumnByName(col.Parts[0], tblInfo) if columnInfo == nil { return nil, moerr.NewInternalError(ctx, "Unknown column '%-.192s' in '%-.192s'", col.Parts[0], "partition function") } ts = append(ts, columnInfo.GetTyp()) } return ts, nil }
func hasDateArgs(argsType ...*Type) bool { for _, t := range argsType { return t.Id == int32(types.T_date) || t.Id == int32(types.T_datetime) } return false }
func hasTimeArgs(argsType ...*Type) bool { for _, t := range argsType { return t.Id == int32(types.T_time) || t.Id == int32(types.T_datetime) } return false }
func hasTimestampArgs(argsType ...*Type) bool { for _, t := range argsType { return t.Id == int32(types.T_timestamp) } return false }
func hasDatetimeArgs(argsType ...*Type) bool { for _, t := range argsType { return t.Id == int32(types.T_datetime) } return false }
AllowedPartitionFuncMap stores functions which can be used in the partition expression.
var MakePlan2Float64ConstExprWithType = makePlan2Float64ConstExprWithType
var MakePlan2Int64ConstExprWithType = makePlan2Int64ConstExprWithType
var MakePlan2StringConstExprWithType = makePlan2StringConstExprWithType
var MakePlan2Type = makePlan2Type
var MakeTypeByPlan2Expr = makeTypeByPlan2Expr
var MakeTypeByPlan2Type = makeTypeByPlan2Type
var ( MetaColDefs = []*plan.ColDef{ { Name: catalog.MetaColNames[catalog.QUERY_ID_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.QUERY_ID_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.STATEMENT_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.STATEMENT_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.ACCOUNT_ID_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.ACCOUNT_ID_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.ROLE_ID_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.ROLE_ID_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.RESULT_PATH_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.RESULT_PATH_IDX].Oid), NotNullable: false, Width: 4, }, }, { Name: catalog.MetaColNames[catalog.CREATE_TIME_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.CREATE_TIME_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.RESULT_SIZE_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.RESULT_SIZE_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.TABLES_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.TABLES_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.USER_ID_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.USER_ID_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.EXPIRED_TIME_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.EXPIRED_TIME_IDX].Oid), NotNullable: false, }, }, { Name: catalog.MetaColNames[catalog.COLUMN_MAP_IDX], Typ: &plan.Type{ Id: int32(catalog.MetaColTypes[catalog.COLUMN_MAP_IDX].Oid), NotNullable: false, }, }, } )
Functions ¶
func BuildVectorsByData ¶ added in v0.7.0
func CheckExprIsMonotonic ¶ added in v0.7.0
func ConstantFold ¶ added in v0.6.0
func DeepCopyAnalyzeInfo ¶ added in v0.7.0
func DeepCopyAnalyzeInfo(analyzeinfo *plan.AnalyzeInfo) *plan.AnalyzeInfo
func DeepCopyClusterTable ¶ added in v0.7.0
func DeepCopyClusterTable(cluster *plan.ClusterTable) *plan.ClusterTable
func DeepCopyDataDefinition ¶ added in v0.6.0
func DeepCopyDataDefinition(old *plan.DataDefinition) *plan.DataDefinition
func DeepCopyDeleteCtx ¶ added in v0.7.0
func DeepCopyIndexDef ¶ added in v0.7.0
func DeepCopyInsertCtx ¶ added in v0.7.0
func DeepCopyObjectRef ¶ added in v0.7.0
func DeepCopyOrderBy ¶ added in v0.6.0
func DeepCopyOrderBy(orderBy *plan.OrderBySpec) *plan.OrderBySpec
func DeepCopyPrimaryKeyDef ¶ added in v0.7.0
func DeepCopyPrimaryKeyDef(pkeyDef *plan.PrimaryKeyDef) *plan.PrimaryKeyDef
func DeepCopyUpdateCtx ¶ added in v0.7.0
func DefaultStats ¶ added in v0.7.0
func EvalFilterExpr ¶ added in v0.7.0
func EvalPlanExpr ¶ added in v0.7.0
func GetBindings ¶ added in v0.5.0
func GetColumnsByExpr ¶ added in v0.7.0
func GetForETLWithType ¶ added in v0.7.0
func GetForETLWithType(param *tree.ExternParam, prefix string) (res fileservice.ETLFileService, readPath string, err error)
func GetProjectNode ¶ added in v0.6.0
func GetProjectNode(stmt *tree.Load, ctx CompilerContext, node *plan.Node, Name2ColIndex map[string]int32, clusterTable *ClusterTable) error
func GetTablePriKeyName ¶ added in v0.7.0
Get the primary key name of the table
func HandleFiltersForZM ¶ added in v0.7.0
handle the filter list for zonemap. rewrite and constFold
func InitInfileParam ¶ added in v0.7.0
func InitInfileParam(param *tree.ExternParam) error
func InitNullMap ¶ added in v0.6.0
func InitNullMap(param *tree.ExternParam, ctx CompilerContext) error
func InitS3Param ¶ added in v0.7.0
func InitS3Param(param *tree.ExternParam) error
func MakePlan2NullTextConstExprWithType ¶ added in v0.7.0
func ReCalcNodeStats ¶ added in v0.7.0
func ReCalcNodeStats(nodeID int32, builder *QueryBuilder, recursive bool)
Types ¶
type BaseOptimizer ¶ added in v0.5.0
type BaseOptimizer struct {
// contains filtered or unexported fields
}
BaseOptimizer is base optimizer, capable of handling only a few simple rules
func NewBaseOptimizer ¶ added in v0.5.0
func NewBaseOptimizer(ctx CompilerContext) *BaseOptimizer
func NewPrepareOptimizer ¶ added in v0.7.0
func NewPrepareOptimizer(ctx CompilerContext) *BaseOptimizer
func (*BaseOptimizer) CurrentContext ¶ added in v0.5.0
func (opt *BaseOptimizer) CurrentContext() CompilerContext
type BindContext ¶ added in v0.5.0
type BindContext struct {
// contains filtered or unexported fields
}
func NewBindContext ¶ added in v0.5.0
func NewBindContext(builder *QueryBuilder, parent *BindContext) *BindContext
type Binder ¶ added in v0.5.0
type Binder interface { BindExpr(tree.Expr, int32, bool) (*plan.Expr, error) BindColRef(*tree.UnresolvedName, int32, bool) (*plan.Expr, error) BindAggFunc(string, *tree.FuncExpr, int32, bool) (*plan.Expr, error) BindWinFunc(string, *tree.FuncExpr, int32, bool) (*plan.Expr, error) BindSubquery(*tree.Subquery, bool) (*plan.Expr, error) GetContext() context.Context }
type Binding ¶ added in v0.5.0
type Binding struct {
// contains filtered or unexported fields
}
func NewBinding ¶ added in v0.5.0
func (*Binding) FindColumn ¶ added in v0.5.0
type BindingTreeNode ¶ added in v0.5.0
type BindingTreeNode struct {
// contains filtered or unexported fields
}
type ClusterByDef ¶ added in v0.7.0
type ClusterByDef = plan.ClusterByDef
type ClusterTable ¶ added in v0.7.0
type ClusterTable = plan.ClusterTable
type ColDef ¶ added in v0.5.0
func GetResultColumnsFromPlan ¶ added in v0.5.0
GetResultColumnsFromPlan
type ColRefRemapping ¶ added in v0.5.0
type ColRefRemapping struct {
// contains filtered or unexported fields
}
type CompilerContext ¶ added in v0.5.0
type CompilerContext interface { // Default database/schema in context DefaultDatabase() string // check if database exist DatabaseExists(name string) bool // get table definition by database/schema Resolve(schemaName string, tableName string) (*ObjectRef, *TableDef) // get table definition by table id ResolveById(tableId uint64) (*ObjectRef, *TableDef) // get the value of variable ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error) // get the list of the account id ResolveAccountIds(accountNames []string) ([]uint32, error) // get the definition of primary key GetPrimaryKeyDef(dbName string, tableName string) []*ColDef // get the definition of hide key GetHideKeyDef(dbName string, tableName string) *ColDef // get estimated stats by table & expr Stats(obj *ObjectRef, e *Expr) *Stats // get origin sql string of the root GetRootSql() string // get username of current session GetUserName() string GetAccountId() uint32 // GetContext get raw context.Context GetContext() context.Context GetProcess() *process.Process GetQueryResultMeta(uuid string) ([]*ColDef, string, error) SetBuildingAlterView(yesOrNo bool, dbName, viewName string) // is building the alter view or not // return: yes or no, dbName, viewName GetBuildingAlterView() (bool, string, string) }
type ConstantFoldRule ¶ added in v0.7.0
type ConstantFoldRule struct {
// contains filtered or unexported fields
}
func NewConstantFoldRule ¶ added in v0.7.0
func NewConstantFoldRule(compCtx CompilerContext) *ConstantFoldRule
func (*ConstantFoldRule) ApplyNode ¶ added in v0.7.0
func (r *ConstantFoldRule) ApplyNode(node *Node) error
func (*ConstantFoldRule) IsApplyExpr ¶ added in v0.7.0
func (r *ConstantFoldRule) IsApplyExpr() bool
func (*ConstantFoldRule) MatchNode ¶ added in v0.7.0
func (r *ConstantFoldRule) MatchNode(node *Node) bool
type CreateTable_FkColName ¶ added in v0.7.0
type CreateTable_FkColName = plan.CreateTable_FkColName
type DefaultBinder ¶ added in v0.6.0
type DefaultBinder struct {
// contains filtered or unexported fields
}
func NewDefaultBinder ¶ added in v0.6.0
func NewDefaultBinder(sysCtx context.Context, builder *QueryBuilder, ctx *BindContext, typ *Type, cols []string) *DefaultBinder
func (*DefaultBinder) BindAggFunc ¶ added in v0.6.0
func (*DefaultBinder) BindColRef ¶ added in v0.6.0
func (b *DefaultBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
func (*DefaultBinder) BindSubquery ¶ added in v0.6.0
func (*DefaultBinder) BindWinFunc ¶ added in v0.6.0
func (*DefaultBinder) GetContext ¶ added in v0.7.0
type ExecInfo ¶ added in v0.6.0
func GetExecTypeFromPlan ¶ added in v0.6.0
GetExecType get executor will execute base AP or TP
type Expr ¶ added in v0.5.0
func DeepCopyExpr ¶ added in v0.5.0
func DeepCopyExprList ¶ added in v0.6.0
type ForeignKeyDef ¶ added in v0.7.0
type ForeignKeyDef = plan.ForeignKeyDef
type GetParamRule ¶ added in v0.6.0
type GetParamRule struct {
// contains filtered or unexported fields
}
func NewGetParamRule ¶ added in v0.5.1
func NewGetParamRule() *GetParamRule
func (*GetParamRule) ApplyNode ¶ added in v0.6.0
func (rule *GetParamRule) ApplyNode(node *Node) error
func (*GetParamRule) IsApplyExpr ¶ added in v0.6.0
func (rule *GetParamRule) IsApplyExpr() bool
func (*GetParamRule) MatchNode ¶ added in v0.6.0
func (rule *GetParamRule) MatchNode(node *Node) bool
func (*GetParamRule) SetParamOrder ¶ added in v0.6.0
func (rule *GetParamRule) SetParamOrder()
type GroupBinder ¶ added in v0.5.0
type GroupBinder struct {
// contains filtered or unexported fields
}
func NewGroupBinder ¶ added in v0.5.0
func NewGroupBinder(builder *QueryBuilder, ctx *BindContext) *GroupBinder
func (*GroupBinder) BindAggFunc ¶ added in v0.5.0
func (*GroupBinder) BindColRef ¶ added in v0.5.0
func (b *GroupBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
func (*GroupBinder) BindSubquery ¶ added in v0.5.0
func (*GroupBinder) BindWinFunc ¶ added in v0.5.0
func (*GroupBinder) GetContext ¶ added in v0.7.0
type HavingBinder ¶ added in v0.5.0
type HavingBinder struct {
// contains filtered or unexported fields
}
func NewHavingBinder ¶ added in v0.5.0
func NewHavingBinder(builder *QueryBuilder, ctx *BindContext) *HavingBinder
func (*HavingBinder) BindAggFunc ¶ added in v0.5.0
func (*HavingBinder) BindColRef ¶ added in v0.5.0
func (b *HavingBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
func (*HavingBinder) BindSubquery ¶ added in v0.5.0
func (*HavingBinder) BindWinFunc ¶ added in v0.5.0
func (*HavingBinder) GetContext ¶ added in v0.7.0
type LimitBinder ¶ added in v0.5.0
type LimitBinder struct {
// contains filtered or unexported fields
}
func NewLimitBinder ¶ added in v0.5.0
func NewLimitBinder(builder *QueryBuilder, ctx *BindContext) *LimitBinder
func (*LimitBinder) BindAggFunc ¶ added in v0.5.0
func (*LimitBinder) BindColRef ¶ added in v0.5.0
func (b *LimitBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
func (*LimitBinder) BindSubquery ¶ added in v0.5.0
func (*LimitBinder) BindWinFunc ¶ added in v0.5.0
func (*LimitBinder) GetContext ¶ added in v0.7.0
type MockBinder ¶ added in v0.7.0
type MockBinder struct {
// contains filtered or unexported fields
}
MockBinder is a mock of Binder interface.
func NewMockBinder ¶ added in v0.7.0
func NewMockBinder(ctrl *gomock.Controller) *MockBinder
NewMockBinder creates a new mock instance.
func (*MockBinder) BindAggFunc ¶ added in v0.7.0
func (m *MockBinder) BindAggFunc(arg0 string, arg1 *tree.FuncExpr, arg2 int32, arg3 bool) (*plan.Expr, error)
BindAggFunc mocks base method.
func (*MockBinder) BindColRef ¶ added in v0.7.0
func (m *MockBinder) BindColRef(arg0 *tree.UnresolvedName, arg1 int32, arg2 bool) (*plan.Expr, error)
BindColRef mocks base method.
func (*MockBinder) BindSubquery ¶ added in v0.7.0
BindSubquery mocks base method.
func (*MockBinder) BindWinFunc ¶ added in v0.7.0
func (m *MockBinder) BindWinFunc(arg0 string, arg1 *tree.FuncExpr, arg2 int32, arg3 bool) (*plan.Expr, error)
BindWinFunc mocks base method.
func (*MockBinder) EXPECT ¶ added in v0.7.0
func (m *MockBinder) EXPECT() *MockBinderMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockBinder) GetContext ¶ added in v0.7.0
func (m *MockBinder) GetContext() context.Context
GetContext mocks base method.
type MockBinderMockRecorder ¶ added in v0.7.0
type MockBinderMockRecorder struct {
// contains filtered or unexported fields
}
MockBinderMockRecorder is the mock recorder for MockBinder.
func (*MockBinderMockRecorder) BindAggFunc ¶ added in v0.7.0
func (mr *MockBinderMockRecorder) BindAggFunc(arg0, arg1, arg2, arg3 interface{}) *gomock.Call
BindAggFunc indicates an expected call of BindAggFunc.
func (*MockBinderMockRecorder) BindColRef ¶ added in v0.7.0
func (mr *MockBinderMockRecorder) BindColRef(arg0, arg1, arg2 interface{}) *gomock.Call
BindColRef indicates an expected call of BindColRef.
func (*MockBinderMockRecorder) BindExpr ¶ added in v0.7.0
func (mr *MockBinderMockRecorder) BindExpr(arg0, arg1, arg2 interface{}) *gomock.Call
BindExpr indicates an expected call of BindExpr.
func (*MockBinderMockRecorder) BindSubquery ¶ added in v0.7.0
func (mr *MockBinderMockRecorder) BindSubquery(arg0, arg1 interface{}) *gomock.Call
BindSubquery indicates an expected call of BindSubquery.
func (*MockBinderMockRecorder) BindWinFunc ¶ added in v0.7.0
func (mr *MockBinderMockRecorder) BindWinFunc(arg0, arg1, arg2, arg3 interface{}) *gomock.Call
BindWinFunc indicates an expected call of BindWinFunc.
func (*MockBinderMockRecorder) GetContext ¶ added in v0.7.0
func (mr *MockBinderMockRecorder) GetContext() *gomock.Call
GetContext indicates an expected call of GetContext.
type MockCompilerContext ¶ added in v0.5.0
type MockCompilerContext struct {
// contains filtered or unexported fields
}
func NewEmptyCompilerContext ¶ added in v0.5.0
func NewEmptyCompilerContext() *MockCompilerContext
NewEmptyCompilerContext for test create/drop statement
func NewMockCompilerContext ¶ added in v0.5.0
func NewMockCompilerContext(isDml bool) *MockCompilerContext
func (*MockCompilerContext) DatabaseExists ¶ added in v0.5.0
func (m *MockCompilerContext) DatabaseExists(name string) bool
func (*MockCompilerContext) DefaultDatabase ¶ added in v0.5.0
func (m *MockCompilerContext) DefaultDatabase() string
func (*MockCompilerContext) GetAccountId ¶ added in v0.6.0
func (m *MockCompilerContext) GetAccountId() uint32
func (*MockCompilerContext) GetBuildingAlterView ¶ added in v0.7.0
func (m *MockCompilerContext) GetBuildingAlterView() (bool, string, string)
func (*MockCompilerContext) GetContext ¶ added in v0.7.0
func (m *MockCompilerContext) GetContext() context.Context
func (*MockCompilerContext) GetHideKeyDef ¶ added in v0.5.0
func (m *MockCompilerContext) GetHideKeyDef(dbName string, tableName string) *ColDef
func (*MockCompilerContext) GetPrimaryKeyDef ¶ added in v0.5.0
func (m *MockCompilerContext) GetPrimaryKeyDef(dbName string, tableName string) []*ColDef
func (*MockCompilerContext) GetProcess ¶ added in v0.7.0
func (m *MockCompilerContext) GetProcess() *process.Process
func (*MockCompilerContext) GetQueryResultMeta ¶ added in v0.7.0
func (m *MockCompilerContext) GetQueryResultMeta(uuid string) ([]*ColDef, string, error)
func (*MockCompilerContext) GetRootSql ¶ added in v0.6.0
func (m *MockCompilerContext) GetRootSql() string
func (*MockCompilerContext) GetUserName ¶ added in v0.6.0
func (m *MockCompilerContext) GetUserName() string
func (*MockCompilerContext) Resolve ¶ added in v0.5.0
func (m *MockCompilerContext) Resolve(dbName string, tableName string) (*ObjectRef, *TableDef)
func (*MockCompilerContext) ResolveAccountIds ¶ added in v0.7.0
func (m *MockCompilerContext) ResolveAccountIds(accountNames []string) ([]uint32, error)
func (*MockCompilerContext) ResolveById ¶ added in v0.7.0
func (m *MockCompilerContext) ResolveById(tableId uint64) (*ObjectRef, *TableDef)
func (*MockCompilerContext) ResolveVariable ¶ added in v0.5.0
func (m *MockCompilerContext) ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error)
func (*MockCompilerContext) SetBuildingAlterView ¶ added in v0.7.0
func (m *MockCompilerContext) SetBuildingAlterView(yesOrNo bool, dbName, viewName string)
type MockCompilerContext2 ¶ added in v0.7.0
type MockCompilerContext2 struct {
// contains filtered or unexported fields
}
MockCompilerContext2 is a mock of CompilerContext interface.
func NewMockCompilerContext2 ¶ added in v0.7.0
func NewMockCompilerContext2(ctrl *gomock.Controller) *MockCompilerContext2
NewMockCompilerContext2 creates a new mock instance.
func (*MockCompilerContext2) DatabaseExists ¶ added in v0.7.0
func (m *MockCompilerContext2) DatabaseExists(name string) bool
DatabaseExists mocks base method.
func (*MockCompilerContext2) DefaultDatabase ¶ added in v0.7.0
func (m *MockCompilerContext2) DefaultDatabase() string
DefaultDatabase mocks base method.
func (*MockCompilerContext2) EXPECT ¶ added in v0.7.0
func (m *MockCompilerContext2) EXPECT() *MockCompilerContext2MockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockCompilerContext2) GetAccountId ¶ added in v0.7.0
func (m *MockCompilerContext2) GetAccountId() uint32
GetAccountId mocks base method.
func (*MockCompilerContext2) GetBuildingAlterView ¶ added in v0.7.0
func (m *MockCompilerContext2) GetBuildingAlterView() (bool, string, string)
GetBuildingAlterView mocks base method.
func (*MockCompilerContext2) GetContext ¶ added in v0.7.0
func (m *MockCompilerContext2) GetContext() context.Context
GetContext mocks base method.
func (*MockCompilerContext2) GetHideKeyDef ¶ added in v0.7.0
func (m *MockCompilerContext2) GetHideKeyDef(dbName, tableName string) *plan.ColDef
GetHideKeyDef mocks base method.
func (*MockCompilerContext2) GetPrimaryKeyDef ¶ added in v0.7.0
func (m *MockCompilerContext2) GetPrimaryKeyDef(dbName, tableName string) []*plan.ColDef
GetPrimaryKeyDef mocks base method.
func (*MockCompilerContext2) GetProcess ¶ added in v0.7.0
func (m *MockCompilerContext2) GetProcess() *process.Process
GetProcess mocks base method.
func (*MockCompilerContext2) GetQueryResultMeta ¶ added in v0.7.0
GetQueryResultMeta mocks base method.
func (*MockCompilerContext2) GetRootSql ¶ added in v0.7.0
func (m *MockCompilerContext2) GetRootSql() string
GetRootSql mocks base method.
func (*MockCompilerContext2) GetUserName ¶ added in v0.7.0
func (m *MockCompilerContext2) GetUserName() string
GetUserName mocks base method.
func (*MockCompilerContext2) Resolve ¶ added in v0.7.0
func (m *MockCompilerContext2) Resolve(schemaName, tableName string) (*plan.ObjectRef, *plan.TableDef)
Resolve mocks base method.
func (*MockCompilerContext2) ResolveAccountIds ¶ added in v0.7.0
func (m *MockCompilerContext2) ResolveAccountIds(accountNames []string) ([]uint32, error)
ResolveAccountIds mocks base method.
func (*MockCompilerContext2) ResolveById ¶ added in v0.7.0
ResolveById mocks base method.
func (*MockCompilerContext2) ResolveVariable ¶ added in v0.7.0
func (m *MockCompilerContext2) ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error)
ResolveVariable mocks base method.
func (*MockCompilerContext2) SetBuildingAlterView ¶ added in v0.7.0
func (m *MockCompilerContext2) SetBuildingAlterView(yesOrNo bool, dbName, viewName string)
SetBuildingAlterView mocks base method.
type MockCompilerContext2MockRecorder ¶ added in v0.7.0
type MockCompilerContext2MockRecorder struct {
// contains filtered or unexported fields
}
MockCompilerContext2MockRecorder is the mock recorder for MockCompilerContext2.
func (*MockCompilerContext2MockRecorder) DatabaseExists ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) DatabaseExists(name interface{}) *gomock.Call
DatabaseExists indicates an expected call of DatabaseExists.
func (*MockCompilerContext2MockRecorder) DefaultDatabase ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) DefaultDatabase() *gomock.Call
DefaultDatabase indicates an expected call of DefaultDatabase.
func (*MockCompilerContext2MockRecorder) GetAccountId ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetAccountId() *gomock.Call
GetAccountId indicates an expected call of GetAccountId.
func (*MockCompilerContext2MockRecorder) GetBuildingAlterView ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetBuildingAlterView() *gomock.Call
GetBuildingAlterView indicates an expected call of GetBuildingAlterView.
func (*MockCompilerContext2MockRecorder) GetContext ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetContext() *gomock.Call
GetContext indicates an expected call of GetContext.
func (*MockCompilerContext2MockRecorder) GetHideKeyDef ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetHideKeyDef(dbName, tableName interface{}) *gomock.Call
GetHideKeyDef indicates an expected call of GetHideKeyDef.
func (*MockCompilerContext2MockRecorder) GetPrimaryKeyDef ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetPrimaryKeyDef(dbName, tableName interface{}) *gomock.Call
GetPrimaryKeyDef indicates an expected call of GetPrimaryKeyDef.
func (*MockCompilerContext2MockRecorder) GetProcess ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetProcess() *gomock.Call
GetProcess indicates an expected call of GetProcess.
func (*MockCompilerContext2MockRecorder) GetQueryResultMeta ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetQueryResultMeta(uuid interface{}) *gomock.Call
GetQueryResultMeta indicates an expected call of GetQueryResultMeta.
func (*MockCompilerContext2MockRecorder) GetRootSql ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetRootSql() *gomock.Call
GetRootSql indicates an expected call of GetRootSql.
func (*MockCompilerContext2MockRecorder) GetUserName ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) GetUserName() *gomock.Call
GetUserName indicates an expected call of GetUserName.
func (*MockCompilerContext2MockRecorder) Resolve ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) Resolve(schemaName, tableName interface{}) *gomock.Call
Resolve indicates an expected call of Resolve.
func (*MockCompilerContext2MockRecorder) ResolveAccountIds ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) ResolveAccountIds(accountNames interface{}) *gomock.Call
ResolveAccountIds indicates an expected call of ResolveAccountIds.
func (*MockCompilerContext2MockRecorder) ResolveById ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) ResolveById(tableId interface{}) *gomock.Call
ResolveById indicates an expected call of ResolveById.
func (*MockCompilerContext2MockRecorder) ResolveVariable ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) ResolveVariable(varName, isSystemVar, isGlobalVar interface{}) *gomock.Call
ResolveVariable indicates an expected call of ResolveVariable.
func (*MockCompilerContext2MockRecorder) SetBuildingAlterView ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) SetBuildingAlterView(yesOrNo, dbName, viewName interface{}) *gomock.Call
SetBuildingAlterView indicates an expected call of SetBuildingAlterView.
func (*MockCompilerContext2MockRecorder) Stats ¶ added in v0.7.0
func (mr *MockCompilerContext2MockRecorder) Stats(obj, e interface{}) *gomock.Call
Stats indicates an expected call of Stats.
type MockOptimizer ¶ added in v0.5.0
type MockOptimizer struct {
// contains filtered or unexported fields
}
func NewEmptyMockOptimizer ¶ added in v0.5.0
func NewEmptyMockOptimizer() *MockOptimizer
func NewMockOptimizer ¶ added in v0.5.0
func NewMockOptimizer(isDml bool) *MockOptimizer
func (*MockOptimizer) CurrentContext ¶ added in v0.5.0
func (moc *MockOptimizer) CurrentContext() CompilerContext
type MockOptimizer2 ¶ added in v0.7.0
type MockOptimizer2 struct {
// contains filtered or unexported fields
}
MockOptimizer2 is a mock of Optimizer interface.
func NewMockOptimizer2 ¶ added in v0.7.0
func NewMockOptimizer2(ctrl *gomock.Controller) *MockOptimizer2
NewMockOptimizer2 creates a new mock instance.
func (*MockOptimizer2) CurrentContext ¶ added in v0.7.0
func (m *MockOptimizer2) CurrentContext() CompilerContext
CurrentContext mocks base method.
func (*MockOptimizer2) EXPECT ¶ added in v0.7.0
func (m *MockOptimizer2) EXPECT() *MockOptimizer2MockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
type MockOptimizer2MockRecorder ¶ added in v0.7.0
type MockOptimizer2MockRecorder struct {
// contains filtered or unexported fields
}
MockOptimizer2MockRecorder is the mock recorder for MockOptimizer2.
func (*MockOptimizer2MockRecorder) CurrentContext ¶ added in v0.7.0
func (mr *MockOptimizer2MockRecorder) CurrentContext() *gomock.Call
CurrentContext indicates an expected call of CurrentContext.
func (*MockOptimizer2MockRecorder) Optimize ¶ added in v0.7.0
func (mr *MockOptimizer2MockRecorder) Optimize(stmt interface{}) *gomock.Call
Optimize indicates an expected call of Optimize.
type MockRule ¶ added in v0.7.0
type MockRule struct {
// contains filtered or unexported fields
}
MockRule is a mock of Rule interface.
func NewMockRule ¶ added in v0.7.0
func NewMockRule(ctrl *gomock.Controller) *MockRule
NewMockRule creates a new mock instance.
func (*MockRule) EXPECT ¶ added in v0.7.0
func (m *MockRule) EXPECT() *MockRuleMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
type MockRuleMockRecorder ¶ added in v0.7.0
type MockRuleMockRecorder struct {
// contains filtered or unexported fields
}
MockRuleMockRecorder is the mock recorder for MockRule.
func (*MockRuleMockRecorder) Apply ¶ added in v0.7.0
func (mr *MockRuleMockRecorder) Apply(arg0, arg1, arg2 interface{}) *gomock.Call
Apply indicates an expected call of Apply.
func (*MockRuleMockRecorder) Match ¶ added in v0.7.0
func (mr *MockRuleMockRecorder) Match(arg0 interface{}) *gomock.Call
Match indicates an expected call of Match.
type NameTuple ¶ added in v0.5.0
type NameTuple struct {
// contains filtered or unexported fields
}
type Optimizer ¶ added in v0.5.0
type Optimizer interface { Optimize(stmt tree.Statement) (*Query, error) CurrentContext() CompilerContext }
type OrderBinder ¶ added in v0.5.0
type OrderBinder struct { *ProjectionBinder // contains filtered or unexported fields }
func NewOrderBinder ¶ added in v0.5.0
func NewOrderBinder(projectionBinder *ProjectionBinder, selectList tree.SelectExprs) *OrderBinder
func (OrderBinder) GetContext ¶ added in v0.7.0
type OrderBySpec ¶ added in v0.6.0
type OrderBySpec = plan.OrderBySpec
type PartitionBinder ¶ added in v0.6.0
type PartitionBinder struct {
// contains filtered or unexported fields
}
func NewPartitionBinder ¶ added in v0.6.0
func NewPartitionBinder(builder *QueryBuilder, ctx *BindContext) *PartitionBinder
func (*PartitionBinder) BindAggFunc ¶ added in v0.6.0
func (*PartitionBinder) BindColRef ¶ added in v0.6.0
func (p *PartitionBinder) BindColRef(name *tree.UnresolvedName, i int32, b bool) (*plan.Expr, error)
func (*PartitionBinder) BindSubquery ¶ added in v0.6.0
func (*PartitionBinder) BindWinFunc ¶ added in v0.6.0
func (*PartitionBinder) GetContext ¶ added in v0.7.0
type PartitionByDef ¶ added in v0.7.0
type PartitionByDef = plan.PartitionByDef
type Plan ¶
func BuildPlan ¶ added in v0.5.0
func BuildPlan(ctx CompilerContext, stmt tree.Statement) (*Plan, error)
func DeepCopyPlan ¶ added in v0.6.0
type Plan_Query ¶ added in v0.5.0
type Plan_Query = plan.Plan_Query
type PrimaryKeyDef ¶ added in v0.7.0
type PrimaryKeyDef = plan.PrimaryKeyDef
type ProjectionBinder ¶ added in v0.5.0
type ProjectionBinder struct {
// contains filtered or unexported fields
}
func NewProjectionBinder ¶ added in v0.5.0
func NewProjectionBinder(builder *QueryBuilder, ctx *BindContext, havingBinder *HavingBinder) *ProjectionBinder
func (*ProjectionBinder) BindAggFunc ¶ added in v0.5.0
func (*ProjectionBinder) BindColRef ¶ added in v0.5.0
func (b *ProjectionBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
func (*ProjectionBinder) BindSubquery ¶ added in v0.5.0
func (*ProjectionBinder) BindWinFunc ¶ added in v0.5.0
func (*ProjectionBinder) GetContext ¶ added in v0.7.0
type PropertiesDef ¶ added in v0.6.0
type PropertiesDef = plan.PropertiesDef
type QueryBuilder ¶ added in v0.5.0
type QueryBuilder struct {
// contains filtered or unexported fields
}
func NewQueryBuilder ¶ added in v0.5.0
func NewQueryBuilder(queryType plan.Query_StatementType, ctx CompilerContext) *QueryBuilder
func (*QueryBuilder) GetContext ¶ added in v0.7.0
func (builder *QueryBuilder) GetContext() context.Context
type RecomputeRealTimeRelatedFuncRule ¶ added in v0.7.0
type RecomputeRealTimeRelatedFuncRule struct {
// contains filtered or unexported fields
}
func NewRecomputeRealTimeRelatedFuncRule ¶ added in v0.7.0
func NewRecomputeRealTimeRelatedFuncRule(proc *process.Process) *RecomputeRealTimeRelatedFuncRule
func (*RecomputeRealTimeRelatedFuncRule) ApplyNode ¶ added in v0.7.0
func (r *RecomputeRealTimeRelatedFuncRule) ApplyNode(_ *Node) error
func (*RecomputeRealTimeRelatedFuncRule) IsApplyExpr ¶ added in v0.7.0
func (r *RecomputeRealTimeRelatedFuncRule) IsApplyExpr() bool
func (*RecomputeRealTimeRelatedFuncRule) MatchNode ¶ added in v0.7.0
func (r *RecomputeRealTimeRelatedFuncRule) MatchNode(_ *Node) bool
type ResetParamOrderRule ¶ added in v0.6.0
type ResetParamOrderRule struct {
// contains filtered or unexported fields
}
func NewResetParamOrderRule ¶ added in v0.6.0
func NewResetParamOrderRule(params map[int]int) *ResetParamOrderRule
func (*ResetParamOrderRule) ApplyNode ¶ added in v0.6.0
func (rule *ResetParamOrderRule) ApplyNode(node *Node) error
func (*ResetParamOrderRule) IsApplyExpr ¶ added in v0.6.0
func (rule *ResetParamOrderRule) IsApplyExpr() bool
func (*ResetParamOrderRule) MatchNode ¶ added in v0.6.0
func (rule *ResetParamOrderRule) MatchNode(_ *Node) bool
type ResetParamRefRule ¶ added in v0.6.0
type ResetParamRefRule struct {
// contains filtered or unexported fields
}
func NewResetParamRefRule ¶ added in v0.6.0
func NewResetParamRefRule(ctx context.Context, params []*Expr) *ResetParamRefRule
func (*ResetParamRefRule) ApplyNode ¶ added in v0.6.0
func (rule *ResetParamRefRule) ApplyNode(node *Node) error
func (*ResetParamRefRule) IsApplyExpr ¶ added in v0.6.0
func (rule *ResetParamRefRule) IsApplyExpr() bool
func (*ResetParamRefRule) MatchNode ¶ added in v0.6.0
func (rule *ResetParamRefRule) MatchNode(_ *Node) bool
type ResetVarRefRule ¶ added in v0.6.0
type ResetVarRefRule struct {
// contains filtered or unexported fields
}
func NewResetVarRefRule ¶ added in v0.6.0
func NewResetVarRefRule(compCtx CompilerContext, proc *process.Process) *ResetVarRefRule
func (*ResetVarRefRule) ApplyNode ¶ added in v0.6.0
func (rule *ResetVarRefRule) ApplyNode(node *Node) error
func (*ResetVarRefRule) IsApplyExpr ¶ added in v0.6.0
func (rule *ResetVarRefRule) IsApplyExpr() bool
func (*ResetVarRefRule) MatchNode ¶ added in v0.6.0
func (rule *ResetVarRefRule) MatchNode(_ *Node) bool
type RowsetData ¶ added in v0.5.0
type RowsetData = plan.RowsetData
type TableBinder ¶ added in v0.5.0
type TableBinder struct {
// contains filtered or unexported fields
}
func NewTableBinder ¶ added in v0.5.0
func NewTableBinder(builder *QueryBuilder, ctx *BindContext) *TableBinder
func (*TableBinder) BindAggFunc ¶ added in v0.5.0
func (*TableBinder) BindColRef ¶ added in v0.5.0
func (b *TableBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
func (*TableBinder) BindSubquery ¶ added in v0.5.0
func (*TableBinder) BindWinFunc ¶ added in v0.5.0
func (*TableBinder) GetContext ¶ added in v0.7.0
type TableDefType ¶ added in v0.6.0
type TableDefType = plan.TableDef_DefType
type TableDef_DefType_Properties ¶ added in v0.6.0
type TableDef_DefType_Properties = plan.TableDef_DefType_Properties
type VisitPlan ¶ added in v0.6.0
type VisitPlan struct {
// contains filtered or unexported fields
}
func NewVisitPlan ¶ added in v0.6.0
func NewVisitPlan(pl *Plan, rules []VisitPlanRule) *VisitPlan
type VisitPlanRule ¶ added in v0.6.0
type WhereBinder ¶ added in v0.5.0
type WhereBinder struct {
// contains filtered or unexported fields
}
func NewWhereBinder ¶ added in v0.5.0
func NewWhereBinder(builder *QueryBuilder, ctx *BindContext) *WhereBinder
func (*WhereBinder) BindAggFunc ¶ added in v0.5.0
func (*WhereBinder) BindColRef ¶ added in v0.5.0
func (b *WhereBinder) BindColRef(astExpr *tree.UnresolvedName, depth int32, isRoot bool) (*plan.Expr, error)
func (*WhereBinder) BindSubquery ¶ added in v0.5.0
func (*WhereBinder) BindWinFunc ¶ added in v0.5.0
func (*WhereBinder) GetContext ¶ added in v0.7.0
Source Files ¶
- base_binder.go
- bind_context.go
- binding.go
- build.go
- build_constraint_util.go
- build_dcl.go
- build_ddl.go
- build_delete.go
- build_insert.go
- build_load.go
- build_replace.go
- build_show.go
- build_transation.go
- build_update.go
- build_util.go
- build_values.go
- current_account.go
- deepcopy.go
- default_binder.go
- flatten_subquery.go
- generate_series.go
- group_binder.go
- having_binder.go
- join_order.go
- limit_binder.go
- make.go
- meta_scan.go
- mock.go
- mysql_compatibility.go
- optimize.go
- order_binder.go
- partition.go
- partition_binder.go
- partition_util.go
- projection_binder.go
- query_builder.go
- result_scan.go
- stats.go
- table_binder.go
- tools.go
- types.go
- types_mock.go
- unnest.go
- utils.go
- visit_plan.go
- visit_plan_rule.go
- where_binder.go