compile

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2022 License: Apache-2.0 Imports: 73 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Merge = iota
	Normal
	Remote
	Parallel
	Pushdown
	CreateDatabase
	CreateTable
	CreateIndex
	DropDatabase
	DropTable
	DropIndex
	Deletion
	Insert
	Update
	InsertValues
	TruncateTable
)

type of scope

View Source
const (
	Single_Core_Rows = 1000000
)

number of rows per core scheduled to be processed

Variables

This section is empty.

Functions

func CnServerMessageHandler added in v0.6.0

func CnServerMessageHandler(ctx context.Context, message morpc.Message,
	cs morpc.ClientSession,
	storeEngine engine.Engine, fileService fileservice.FileService, cli client.TxnClient, messageAcquirer func() morpc.Message,
	getClusterDetails engine.GetClusterDetailsFunc) error

CnServerMessageHandler deal the client message that received at cn-server. the message is always *pipeline.Message here. It's a byte array which encoded by method encodeScope. write back Analysis Information and error info if error occurs to client.

func DebugShowScopes added in v0.6.0

func DebugShowScopes(ss []*Scope) string

DebugShowScopes show information of a scope structure.

func PrintScope added in v0.5.0

func PrintScope(prefix []byte, ss []*Scope)

Types

type Col

type Col struct {
	Typ  types.T
	Name string
}

Col is the information of attribute

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 string, sql string, uid string, ctx context.Context,
	e engine.Engine, proc *process.Process, stmt tree.Statement) *Compile

New is used to new an object of compile

func (*Compile) Compile added in v0.5.0

func (c *Compile) Compile(pn *plan.Plan, u any, fill func(any, *batch.Batch) error) (err error)

Compile is the entrance of the compute-layer, it compiles AST tree to scope list. A scope is an execution unit.

func (*Compile) ConstructScope added in v0.6.0

func (c *Compile) ConstructScope() *Scope

func (*Compile) GetAffectedRows added in v0.5.0

func (c *Compile) GetAffectedRows() uint64

func (*Compile) NumCPU added in v0.6.0

func (c *Compile) NumCPU() int

Number of cpu's available on the current machine

func (*Compile) Run added in v0.5.0

func (c *Compile) Run(_ uint64) (err error)

Run is an important function of the compute-layer, it executes a single sql according to its scope

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 int

	// IsEnd means the pipeline is join
	IsJoin bool

	// IsEnd means the pipeline is end
	IsEnd bool

	// IsRemote means the pipeline is remote
	IsRemote 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
}

Scope is the output of the compile process. Each sql will be compiled to one or more execution unit scopes.

func (*Scope) CreateDatabase

func (s *Scope) CreateDatabase(c *Compile) error

func (*Scope) CreateTable

func (s *Scope) CreateTable(c *Compile) error

func (*Scope) Delete

func (s *Scope) Delete(c *Compile) (uint64, error)

func (*Scope) DropDatabase

func (s *Scope) DropDatabase(c *Compile) error

func (*Scope) DropTable

func (s *Scope) DropTable(c *Compile) error

func (*Scope) Insert

func (s *Scope) Insert(c *Compile) (uint64, error)

func (*Scope) InsertValues added in v0.6.0

func (s *Scope) InsertValues(c *Compile, stmt *tree.Insert) (uint64, error)

func (*Scope) JoinRun added in v0.6.0

func (s *Scope) JoinRun(c *Compile) error

func (*Scope) MergeRun

func (s *Scope) MergeRun(c *Compile) error

MergeRun range and run the scope's pre-scopes by go-routine, and finally run itself to do merge work.

func (*Scope) ParallelRun

func (s *Scope) ParallelRun(c *Compile, remote bool) error

ParallelRun try to execute the scope in parallel way.

func (*Scope) PushdownRun added in v0.6.0

func (s *Scope) PushdownRun(c *Compile) error

func (*Scope) RemoteRun

func (s *Scope) RemoteRun(c *Compile) error

RemoteRun send the scope to a remote node for execution. if no target node information, just execute it at local.

func (*Scope) Run

func (s *Scope) Run(c *Compile) (err error)

Run read data from storage engine and run the instructions of scope.

func (*Scope) TruncateTable added in v0.6.0

func (s *Scope) TruncateTable(c *Compile) error

Truncation operations cannot be performed if the session holds an active table lock.

func (*Scope) Update

func (s *Scope) Update(c *Compile) (uint64, error)

type Server added in v0.6.0

type Server struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewServer added in v0.6.0

func NewServer() *Server

func (*Server) GetConnector added in v0.6.0

func (srv *Server) GetConnector(id uint64) *process.WaitRegister

func (*Server) HandleRequest added in v0.6.0

func (srv *Server) HandleRequest(ctx context.Context, req morpc.Message, _ uint64, cs morpc.ClientSession) error

func (*Server) RegistConnector added in v0.6.0

func (srv *Server) RegistConnector(reg *process.WaitRegister) uint64

type Source

type Source struct {
	PushdownId   uint64
	PushdownAddr string
	SchemaName   string
	RelationName string
	Attributes   []string
	R            engine.Reader
	Bat          *batch.Batch
	Expr         *plan.Expr
	TableDef     *plan.TableDef
	Timestamp    timestamp.Timestamp
}

Source contains information of a relation which will be used in execution,

type TxnOperator added in v0.6.0

type TxnOperator = client.TxnOperator

Jump to

Keyboard shortcuts

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