plan

package
v0.0.0-...-f9bb679 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2026 License: PostgreSQL Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const NOSHARD = ""

Variables

View Source
var ErrResolvingValue = fmt.Errorf("error while resolving expression value")

Functions

func ParseResolveParamValue

func ParseResolveParamValue(paramCode int16, ind int, tp string, bindParams [][]byte) (any, error)

Types

type CopyPlan

type CopyPlan struct {
	Plan

	ExecTargets []kr.ShardKey
	// contains filtered or unexported fields
}

func (*CopyPlan) ExecutionTargets

func (cs *CopyPlan) ExecutionTargets() []kr.ShardKey

func (*CopyPlan) GetGangMemberMsg

func (s *CopyPlan) GetGangMemberMsg(kr.ShardKey) string

func (*CopyPlan) PrepareRunSlice

func (s *CopyPlan) PrepareRunSlice(server.Server) error

func (*CopyPlan) RunSlice

func (s *CopyPlan) RunSlice(server.Server) error

func (*CopyPlan) SetStmt

func (sp *CopyPlan) SetStmt(n lyx.Node)

func (*CopyPlan) Stmt

func (sp *CopyPlan) Stmt() lyx.Node

func (*CopyPlan) Subplan

func (s *CopyPlan) Subplan() Plan

type DataRowFilter

type DataRowFilter struct {
	Plan

	FilterIndex uint
	SubPlan     Plan
	// contains filtered or unexported fields
}

func (*DataRowFilter) ExecutionTargets

func (rf *DataRowFilter) ExecutionTargets() []kr.ShardKey

func (*DataRowFilter) GetGangMemberMsg

func (s *DataRowFilter) GetGangMemberMsg(sh kr.ShardKey) string

func (*DataRowFilter) PrepareRunSlice

func (s *DataRowFilter) PrepareRunSlice(serv server.Server) error

func (*DataRowFilter) RunSlice

func (s *DataRowFilter) RunSlice(serv server.Server) error

func (*DataRowFilter) SetStmt

func (sp *DataRowFilter) SetStmt(n lyx.Node)

func (*DataRowFilter) Stmt

func (sp *DataRowFilter) Stmt() lyx.Node

func (*DataRowFilter) Subplan

func (s *DataRowFilter) Subplan() Plan

type ModifyTable

type ModifyTable struct {
	Plan

	ExecTargets []kr.ShardKey
	// contains filtered or unexported fields
}

func (*ModifyTable) ExecutionTargets

func (mt *ModifyTable) ExecutionTargets() []kr.ShardKey

func (*ModifyTable) GetGangMemberMsg

func (s *ModifyTable) GetGangMemberMsg(kr.ShardKey) string

func (*ModifyTable) PrepareRunSlice

func (s *ModifyTable) PrepareRunSlice(server.Server) error

func (*ModifyTable) RunSlice

func (s *ModifyTable) RunSlice(server.Server) error

func (*ModifyTable) SetStmt

func (sp *ModifyTable) SetStmt(n lyx.Node)

func (*ModifyTable) Stmt

func (sp *ModifyTable) Stmt() lyx.Node

func (*ModifyTable) Subplan

func (s *ModifyTable) Subplan() Plan

type Plan

type Plan interface {
	Stmt() lyx.Node
	SetStmt(lyx.Node)

	ExecutionTargets() []kr.ShardKey
	GetGangMemberMsg(sh kr.ShardKey) string

	RunSlice(server.Server) error
	PrepareRunSlice(server.Server) error

	Subplan() Plan
}

func Combine

func Combine(p1, p2 Plan) Plan

TODO : unit tests

type RandomDispatchPlan

type RandomDispatchPlan struct {
	Plan

	ExecTargets []kr.ShardKey
	// contains filtered or unexported fields
}

func (*RandomDispatchPlan) ExecutionTargets

func (rdp *RandomDispatchPlan) ExecutionTargets() []kr.ShardKey

func (*RandomDispatchPlan) GetGangMemberMsg

func (s *RandomDispatchPlan) GetGangMemberMsg(kr.ShardKey) string

func (*RandomDispatchPlan) PrepareRunSlice

func (s *RandomDispatchPlan) PrepareRunSlice(server.Server) error

func (*RandomDispatchPlan) RunSlice

func (s *RandomDispatchPlan) RunSlice(server.Server) error

func (*RandomDispatchPlan) SetStmt

func (sp *RandomDispatchPlan) SetStmt(n lyx.Node)

func (*RandomDispatchPlan) Stmt

func (sp *RandomDispatchPlan) Stmt() lyx.Node

func (*RandomDispatchPlan) Subplan

func (s *RandomDispatchPlan) Subplan() Plan

type Scan

type Scan struct {
	Plan
	Relation        *lyx.RangeVar
	Projection      []lyx.Node
	GroupingColumns []string
}

type ScatterPlan

type ScatterPlan struct {
	Plan
	SubPlan Plan

	/* explicitly set-up link to next slice */
	SubSlice Plan

	/* To decide if query is OK even in DRH = BLOCK */
	IsDDL  bool
	Forced bool

	PrepareRunF func() error

	RunF func(server.Server) error

	OverwriteQuery map[string]string
	/* Empty means execute everywhere */
	ExecTargets []kr.ShardKey
	// contains filtered or unexported fields
}

func (*ScatterPlan) ExecutionTargets

func (sp *ScatterPlan) ExecutionTargets() []kr.ShardKey

func (*ScatterPlan) GetGangMemberMsg

func (s *ScatterPlan) GetGangMemberMsg(sh kr.ShardKey) string

func (*ScatterPlan) PrepareRunSlice

func (s *ScatterPlan) PrepareRunSlice(serv server.Server) error

func (*ScatterPlan) RunSlice

func (s *ScatterPlan) RunSlice(serv server.Server) error

func (*ScatterPlan) SetStmt

func (sp *ScatterPlan) SetStmt(n lyx.Node)

func (*ScatterPlan) Stmt

func (sp *ScatterPlan) Stmt() lyx.Node

func (*ScatterPlan) Subplan

func (s *ScatterPlan) Subplan() Plan

type ShardDispatchPlan

type ShardDispatchPlan struct {
	Plan

	SP Plan

	PStmt              lyx.Node
	ExecTarget         kr.ShardKey
	TargetSessionAttrs tsa.TSA
	// contains filtered or unexported fields
}

func (*ShardDispatchPlan) ExecutionTargets

func (sms *ShardDispatchPlan) ExecutionTargets() []kr.ShardKey

func (*ShardDispatchPlan) GetGangMemberMsg

func (s *ShardDispatchPlan) GetGangMemberMsg(kr.ShardKey) string

func (*ShardDispatchPlan) PrepareRunSlice

func (s *ShardDispatchPlan) PrepareRunSlice(server.Server) error

func (*ShardDispatchPlan) RunSlice

func (s *ShardDispatchPlan) RunSlice(serv server.Server) error

func (*ShardDispatchPlan) SetStmt

func (sp *ShardDispatchPlan) SetStmt(n lyx.Node)

func (*ShardDispatchPlan) Stmt

func (sp *ShardDispatchPlan) Stmt() lyx.Node

func (*ShardDispatchPlan) Subplan

func (s *ShardDispatchPlan) Subplan() Plan

type VirtualPlan

type VirtualPlan struct {
	Plan

	OverwriteCC *pgproto3.CommandComplete
	TTS         *tupleslot.TupleTableSlot
	SubPlan     Plan
	// contains filtered or unexported fields
}

func (*VirtualPlan) ExecutionTargets

func (vp *VirtualPlan) ExecutionTargets() []kr.ShardKey

func (*VirtualPlan) GetGangMemberMsg

func (s *VirtualPlan) GetGangMemberMsg(kr.ShardKey) string

func (*VirtualPlan) PrepareRunSlice

func (s *VirtualPlan) PrepareRunSlice(server.Server) error

func (*VirtualPlan) RunSlice

func (s *VirtualPlan) RunSlice(server.Server) error

func (*VirtualPlan) SetStmt

func (sp *VirtualPlan) SetStmt(n lyx.Node)

func (*VirtualPlan) Stmt

func (sp *VirtualPlan) Stmt() lyx.Node

func (*VirtualPlan) Subplan

func (s *VirtualPlan) Subplan() Plan

Jump to

Keyboard shortcuts

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