vm

package
v0.0.0-debug-20260702 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CancelResult = CallResult{
	Status: ExecStop,
}
View Source
var MajorOpMap map[string]bool
View Source
var MinorOpMap map[string]bool
View Source
var OperatorToStrMap map[OpType]string
View Source
var StrToOperatorMap map[string]OpType

Functions

func CancelCheck added in v1.1.0

func CancelCheck(proc *process.Process) (error, bool)

func HandleAllOp

func HandleAllOp(rootOp Operator, opHandle func(parentOp Operator, op Operator) error) (err error)

func HandleLeafOp

func HandleLeafOp(parentOp Operator, op Operator, opHandle func(leafOpParent Operator, leafOp Operator) error) (err error)

func ModifyOutputOpNodeIdx

func ModifyOutputOpNodeIdx(rootOp Operator, proc *process.Process)

func Prepare

func Prepare(op Operator, proc *process.Process) error

do init work for each operator by calling its prepare function

func String

func String(rootOp Operator, buf *bytes.Buffer)

call each operator's string function to show a query plan

Types

type CallResult added in v1.1.0

type CallResult struct {
	Status ExecStatus
	Batch  *batch.Batch
}

func ChildrenCall added in v1.1.0

func ChildrenCall(op Operator, proc *process.Process, anal process.Analyzer) (CallResult, error)

func Exec

func Exec(op Operator, proc *process.Process) (CallResult, error)

func NewCallResult added in v1.1.0

func NewCallResult() CallResult

type CtrState added in v1.1.0

type CtrState int
const (
	Build CtrState = iota
	Eval
	EvalReset
	End
)

type ExecStatus added in v1.1.0

type ExecStatus int
const (
	ExecStop ExecStatus = iota
	ExecNext
	ExecHasMore
)

type ModificationArgument added in v0.8.0

type ModificationArgument interface {
	GetAffectedRows() uint64
}

type OpType added in v0.8.0

type OpType int
const (
	Top OpType = iota
	Limit
	Order
	Group
	Window
	TimeWin
	Fill
	Output
	Offset
	Product
	Filter
	Dispatch
	Connector
	Projection

	HashJoin
	LoopJoin
	IndexJoin
	DedupJoin
	RightDedupJoin

	HashBuild
	IndexBuild

	Merge
	MergeTop
	MergeLimit
	MergeOrder
	MergeGroup
	MergeOffset
	MergeRecursive
	MergeCTE
	Partition

	Deletion
	Insert
	External
	Source
	MultiUpdate
	PartitionInsert
	PartitionDelete
	PartitionMultiUpdate

	Minus
	Intersect
	IntersectAll
	UnionAll

	TableFunction
	TableScan
	ValueScan
	// MergeBlock is used to recieve S3 block metLoc Info, and write
	// them to S3
	MergeBlock
	// MergeDelete is used to recieve S3 Blcok Delete Info from remote Cn
	MergeDelete
	FuzzyFilter
	PreInsert
	PreInsertUnique
	PreInsertSecondaryIndex
	// LastInstructionOp is not a true operator and must set at last.
	// It was used by unit testing to ensure that
	// all functions related to instructions can reach 100% coverage.
	LastInstructionOp

	// LockOp is used to add locks to lockservice for pessimistic transactions.
	// Operator that encounters a write conflict will block until the previous
	// transaction has released the lock
	LockOp

	Shuffle
	ShuffleV2

	Sample
	ProductL2
	Mock
	Apply
	PostDml
)

func (OpType) String

func (op OpType) String() string

type Operator added in v1.1.0

type Operator interface {
	// Free release all the memory allocated from mPool in an operator.
	// pipelineFailed marks the process status of the pipeline when the method is called.
	Free(proc *process.Process, pipelineFailed bool, err error)

	// Reset clean all the memory that can be reused.
	Reset(proc *process.Process, pipelineFailed bool, err error)

	// String returns the string representation of an operator.
	String(buf *bytes.Buffer)

	// OpType returns the OpType of an operator.
	OpType() OpType

	//Prepare prepares an operator for execution.
	Prepare(proc *process.Process) error

	//Call calls an operator.
	Call(proc *process.Process) (CallResult, error)

	//Release an operator
	Release()

	// OperatorBase methods
	SetInfo(info *OperatorInfo)
	AppendChild(child Operator)

	GetOperatorBase() *OperatorBase
	ExecProjection(proc *process.Process, input *batch.Batch) (*batch.Batch, error)
}

func GetLeafOp

func GetLeafOp(op Operator) Operator

suppose that the op tree is like a list, only one leaf child

func GetLeafOpParent

func GetLeafOpParent(parentOp Operator, op Operator) Operator

suppose that the op tree is like a list, only one leaf child

type OperatorBase added in v1.2.0

type OperatorBase struct {
	OperatorInfo
	OpAnalyzer process.Analyzer
	Children   []Operator
}

func (*OperatorBase) AppendChild added in v1.2.0

func (o *OperatorBase) AppendChild(child Operator)

func (*OperatorBase) GetChildren added in v1.2.0

func (o *OperatorBase) GetChildren(idx int) Operator

func (*OperatorBase) GetCnAddr added in v1.2.0

func (o *OperatorBase) GetCnAddr() string

func (*OperatorBase) GetIdx added in v1.2.0

func (o *OperatorBase) GetIdx() int

func (*OperatorBase) GetIsFirst added in v1.2.0

func (o *OperatorBase) GetIsFirst() bool

func (*OperatorBase) GetIsLast added in v1.2.0

func (o *OperatorBase) GetIsLast() bool

func (*OperatorBase) GetMaxParallel added in v1.2.0

func (o *OperatorBase) GetMaxParallel() int32

func (*OperatorBase) GetOperatorID added in v1.2.0

func (o *OperatorBase) GetOperatorID() int32

func (*OperatorBase) GetParalleID added in v1.2.0

func (o *OperatorBase) GetParalleID() int32

func (*OperatorBase) NumChildren added in v1.2.0

func (o *OperatorBase) NumChildren() int

func (*OperatorBase) ResetChildren

func (o *OperatorBase) ResetChildren()

func (*OperatorBase) SetAnalyzeControl

func (o *OperatorBase) SetAnalyzeControl(nodeIdx int, isFirst bool)

func (*OperatorBase) SetChild

func (o *OperatorBase) SetChild(child Operator, idx int)

func (*OperatorBase) SetChildren added in v1.2.0

func (o *OperatorBase) SetChildren(children []Operator)

func (*OperatorBase) SetCnAddr

func (o *OperatorBase) SetCnAddr(cnAddr string)

func (*OperatorBase) SetIdx

func (o *OperatorBase) SetIdx(idx int)

func (*OperatorBase) SetInfo added in v1.2.0

func (o *OperatorBase) SetInfo(info *OperatorInfo)

func (*OperatorBase) SetIsFirst

func (o *OperatorBase) SetIsFirst(isFirst bool)

func (*OperatorBase) SetIsLast

func (o *OperatorBase) SetIsLast(isLast bool)

func (*OperatorBase) SetMaxParallel

func (o *OperatorBase) SetMaxParallel(maxParallel int32)

func (*OperatorBase) SetOperatorID

func (o *OperatorBase) SetOperatorID(operatorID int32)

func (*OperatorBase) SetParalleID

func (o *OperatorBase) SetParalleID(paralledID int32)

type OperatorInfo added in v1.1.0

type OperatorInfo struct {
	Idx     int // plan node index to which the pipeline operator belongs
	IsFirst bool
	IsLast  bool

	CnAddr      string
	OperatorID  int32
	ParallelID  int32
	MaxParallel int32
}

func (OperatorInfo) GetAddress added in v1.2.0

func (info OperatorInfo) GetAddress() message.MessageAddress

Jump to

Keyboard shortcuts

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