Documentation ¶
Index ¶
- Constants
- func ApplyRuntimeFilters(ctx context.Context, proc *process.Process, tableDef *plan.TableDef, ...) ([][]byte, error)
- func CnServerMessageHandler(ctx context.Context, cnAddr string, message morpc.Message, ...) error
- func DebugShowScopes(ss []*Scope) string
- func NewSQLExecutor(addr string, eng engine.Engine, mp *mpool.MPool, txnClient client.TxnClient, ...) executor.SQLExecutor
- type Col
- type Compile
- func (c *Compile) Compile(ctx context.Context, pn *plan.Plan, u any, fill func(any, *batch.Batch) error) (err error)
- func (c *Compile) NeedInitTempEngine(InitTempEngine bool) bool
- func (c *Compile) Run(_ uint64) (*util2.RunResult, error)
- func (c *Compile) SetBuildPlanFunc(buildPlanFunc func() (*plan2.Plan, error))
- func (c *Compile) SetTempEngine(ctx context.Context, te engine.Engine)
- type RemoteReceivRegInfo
- type RuntimeFilterEvaluator
- type RuntimeInFilter
- type RuntimeZonemapFilter
- type Scope
- func (s *Scope) AlterSequence(c *Compile) error
- func (s *Scope) AlterTable(c *Compile) error
- func (s *Scope) AlterTableCopy(c *Compile) error
- func (s *Scope) AlterTableInplace(c *Compile) error
- func (s *Scope) AlterView(c *Compile) error
- func (s *Scope) CreateDatabase(c *Compile) error
- func (s *Scope) CreateIndex(c *Compile) error
- func (s *Scope) CreateSequence(c *Compile) error
- func (s *Scope) CreateTable(c *Compile) error
- func (s *Scope) CreateTempTable(c *Compile) error
- func (s *Scope) Delete(c *Compile) (uint64, error)
- func (s *Scope) DropDatabase(c *Compile) error
- func (s *Scope) DropIndex(c *Compile) error
- func (s *Scope) DropSequence(c *Compile) error
- func (s *Scope) DropTable(c *Compile) error
- func (s *Scope) Insert(c *Compile) (uint64, error)
- func (s *Scope) JoinRun(c *Compile) error
- func (s *Scope) LoadRun(c *Compile) error
- func (s *Scope) MergeRun(c *Compile) error
- func (s *Scope) ParallelRun(c *Compile, remote bool) error
- func (s *Scope) PushdownRun() error
- func (s *Scope) RemoteRun(c *Compile) error
- func (s *Scope) Run(c *Compile) (err error)
- func (s *Scope) SetContextRecursively(ctx context.Context)
- func (s *Scope) TruncateTable(c *Compile) error
- type Source
- type TxnOperator
Constants ¶
const ( DistributedThreshold uint64 = 10 * mpool.MB SingleLineSizeEstimate uint64 = 300 * mpool.B )
Note: Now the cost going from stat is actually the number of rows, so we can only estimate a number for the size of each row. The current insertion of around 200,000 rows triggers cn to write s3 directly
const ( Merge magicType = iota Normal Remote Parallel Pushdown CreateDatabase CreateTable CreateIndex DropDatabase DropTable DropIndex Deletion Insert InsertValues TruncateTable AlterView AlterTable MergeInsert MergeDelete CreateSequence DropSequence AlterSequence MagicDelete Replace )
type of scope
const ( INDEX_TYPE_PRIMARY = "PRIMARY" INDEX_TYPE_UNIQUE = "UNIQUE" INDEX_TYPE_MULTIPLE = "MULTIPLE" )
const ( INDEX_VISIBLE_YES = 1 INDEX_VISIBLE_NO = 0 )
const ( INDEX_HIDDEN_YES = 1 INDEX_HIDDEN_NO = 0 )
const ( NULL_VALUE = "null" EMPTY_STRING = "" )
const (
ALLOCID_INDEX_KEY = "index_key"
)
const ( // need to fix this in the future. for now, increase it to make tpch1T can run on 3 CN HandleNotifyTimeout = 300 * time.Second )
const StreamMaxInterval = 8192
Variables ¶
This section is empty.
Functions ¶
func ApplyRuntimeFilters ¶ added in v1.0.0
func CnServerMessageHandler ¶ added in v0.6.0
func CnServerMessageHandler( ctx context.Context, cnAddr string, message morpc.Message, cs morpc.ClientSession, storeEngine engine.Engine, fileService fileservice.FileService, lockService lockservice.LockService, queryService queryservice.QueryService, cli client.TxnClient, aicm *defines.AutoIncrCacheManager, messageAcquirer func() morpc.Message) error
CnServerMessageHandler is responsible for processing the cn-client message received at cn-server. the message is always *pipeline.Message here. It's a byte array which encoded by method encodeScope.
func DebugShowScopes ¶ added in v0.6.0
DebugShowScopes show information of a scope structure.
func NewSQLExecutor ¶ added in v0.8.0
func NewSQLExecutor( addr string, eng engine.Engine, mp *mpool.MPool, txnClient client.TxnClient, fs fileservice.FileService, qs queryservice.QueryService, aicm *defines.AutoIncrCacheManager) executor.SQLExecutor
NewSQLExecutor returns a internal used sql service. It can execute sql in current CN.
Types ¶
type Compile ¶ added in v0.5.0
type Compile struct {
// contains filtered or unexported fields
}
Compile contains all the information needed for compilation.
func New ¶
func New( addr, db, sql, tenant, uid string, ctx context.Context, e engine.Engine, proc *process.Process, stmt tree.Statement, isInternal bool, cnLabel map[string]string, startAt time.Time) *Compile
New is used to new an object of compile
func (*Compile) Compile ¶ added in v0.5.0
func (c *Compile) Compile(ctx context.Context, pn *plan.Plan, u any, fill func(any, *batch.Batch) error) (err error)
Compile is the entrance of the compute-execute-layer. It generates a scope (logic pipeline) for a query plan.
func (*Compile) NeedInitTempEngine ¶ added in v0.7.0
helper function to judge if init temporary engine is needed
func (*Compile) Run ¶ added in v0.5.0
Run is an important function of the compute-layer, it executes a single sql according to its scope
func (*Compile) SetBuildPlanFunc ¶ added in v1.0.0
type RemoteReceivRegInfo ¶ added in v0.7.0
type RuntimeFilterEvaluator ¶ added in v1.0.0
type RuntimeInFilter ¶ added in v1.0.0
type RuntimeZonemapFilter ¶ added in v1.0.0
type Scope ¶
type Scope struct { // Magic specifies the type of Scope. // 0 - execution unit for reading data. // 1 - execution unit for processing intermediate results. // 2 - execution unit that requires remote call. Magic magicType // IsJoin means the pipeline is join IsJoin bool // IsEnd means the pipeline is end IsEnd bool // IsRemote means the pipeline is remote IsRemote bool // IsLoad means the pipeline is load IsLoad bool Plan *plan.Plan // DataSource stores information about data source. DataSource *Source // PreScopes contains children of this scope will inherit and execute. PreScopes []*Scope // NodeInfo contains the information about the remote node. NodeInfo engine.Node // Instructions contains command list of this scope. Instructions vm.Instructions // Proc contains the execution context. Proc *process.Process Reg *process.WaitRegister RemoteReceivRegInfos []RemoteReceivRegInfo BuildIdx int ShuffleCnt int PartialResults []any }
Scope is the output of the compile process. Each sql will be compiled to one or more execution unit scopes.
func (*Scope) AlterSequence ¶ added in v1.0.0
func (*Scope) AlterTable ¶ added in v0.8.0
func (*Scope) AlterTableCopy ¶ added in v1.0.0
func (*Scope) AlterTableInplace ¶ added in v1.0.0
func (*Scope) CreateDatabase ¶
func (*Scope) CreateIndex ¶
func (*Scope) CreateSequence ¶ added in v0.8.0
func (*Scope) CreateTable ¶
func (*Scope) CreateTempTable ¶ added in v0.7.0
func (*Scope) DropDatabase ¶
func (*Scope) DropSequence ¶ added in v0.8.0
func (*Scope) MergeRun ¶
MergeRun range and run the scope's pre-scopes by go-routine, and finally run itself to do merge work.
func (*Scope) ParallelRun ¶
ParallelRun try to execute the scope in parallel way.
func (*Scope) PushdownRun ¶ added in v0.6.0
func (*Scope) RemoteRun ¶
RemoteRun send the scope to a remote node for execution. if no target node information, just execute it at local.
func (*Scope) SetContextRecursively ¶ added in v0.8.0
func (*Scope) TruncateTable ¶ added in v0.6.0
Truncation operations cannot be performed if the session holds an active table lock.
type Source ¶
type Source struct { PushdownId uint64 PushdownAddr string SchemaName string RelationName string PartitionRelationNames []string Attributes []string R engine.Reader Bat *batch.Batch Expr *plan.Expr TableDef *plan.TableDef Timestamp timestamp.Timestamp AccountId *plan.PubInfo RuntimeFilterSpecs []*plan.RuntimeFilterSpec }
Source contains information of a relation which will be used in execution,
type TxnOperator ¶ added in v0.6.0
type TxnOperator = client.TxnOperator