Documentation ¶
Index ¶
- Constants
- type ColumnPair
- type EquiJoinPredicateRule
- type EquiJoinProcedureSpec
- type JoinFn
- type JoinOpSpec
- type JoinProcedureSpec
- type MergeJoinTransformation
- type SortMergeJoinPredicateRule
- type SortMergeJoinProcedureSpec
- func (p *SortMergeJoinProcedureSpec) Copy() plan.ProcedureSpec
- func (p *SortMergeJoinProcedureSpec) Cost(inStats []plan.Statistics) (cost plan.Cost, outStats plan.Statistics)
- func (p *SortMergeJoinProcedureSpec) Kind() plan.ProcedureKind
- func (p *SortMergeJoinProcedureSpec) RequiredAttributes() []plan.PhysicalAttributes
Constants ¶
const EquiJoinKind = "equijoin"
const Join2Kind = "join.tables"
const SortMergeJoinKind = "sortmergejoin"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ColumnPair ¶
type ColumnPair struct {
Left, Right string
}
type EquiJoinPredicateRule ¶
type EquiJoinPredicateRule struct{}
func (EquiJoinPredicateRule) Name ¶
func (EquiJoinPredicateRule) Name() string
func (EquiJoinPredicateRule) Pattern ¶
func (EquiJoinPredicateRule) Pattern() plan.Pattern
type EquiJoinProcedureSpec ¶
type EquiJoinProcedureSpec struct { On []ColumnPair As interpreter.ResolvedFunction Left *flux.TableObject Right *flux.TableObject Method string }
func (*EquiJoinProcedureSpec) Copy ¶
func (p *EquiJoinProcedureSpec) Copy() plan.ProcedureSpec
func (*EquiJoinProcedureSpec) Cost ¶
func (p *EquiJoinProcedureSpec) Cost(inStats []plan.Statistics) (cost plan.Cost, outStats plan.Statistics)
func (*EquiJoinProcedureSpec) Kind ¶
func (p *EquiJoinProcedureSpec) Kind() plan.ProcedureKind
type JoinFn ¶ added in v0.172.0
type JoinFn struct {
// contains filtered or unexported fields
}
JoinFn handles the logic of calling the function in the `as` parameter of join.tables()
func NewJoinFn ¶ added in v0.172.0
func NewJoinFn(fn interpreter.ResolvedFunction) *JoinFn
func (*JoinFn) Eval ¶ added in v0.172.0
func (f *JoinFn) Eval(ctx context.Context, p *joinProduct, method string, mem memory.Allocator) ([]table.Chunk, bool, error)
Produces the output of the joinProduct, if there is any to be produced. In some cases, the specified join method might require that no output be produced if one side is empty. If the returned bool == true, that means this function returned a non-empty table chunk containing the joined data.
func (*JoinFn) ReturnType ¶ added in v0.172.0
type JoinOpSpec ¶
type JoinOpSpec struct {
// contains filtered or unexported fields
}
func (*JoinOpSpec) Kind ¶
func (o *JoinOpSpec) Kind() flux.OperationKind
type JoinProcedureSpec ¶
type JoinProcedureSpec struct { On interpreter.ResolvedFunction As interpreter.ResolvedFunction Left *flux.TableObject Right *flux.TableObject Method string }
func (*JoinProcedureSpec) Copy ¶
func (p *JoinProcedureSpec) Copy() plan.ProcedureSpec
func (*JoinProcedureSpec) Kind ¶
func (p *JoinProcedureSpec) Kind() plan.ProcedureKind
type MergeJoinTransformation ¶ added in v0.172.0
type MergeJoinTransformation struct {
// contains filtered or unexported fields
}
MergeJoinTransformation performs a sort-merge-join on two table streams. It assumes that input tables are sorted by the columns in the `on` parameter, and that we're performing an equijoin. The planner should ensure that both of these assumptions are true.
func NewMergeJoinTransformation ¶ added in v0.172.0
func (*MergeJoinTransformation) Dataset ¶ added in v0.172.0
func (t *MergeJoinTransformation) Dataset() *execute.TransportDataset
func (*MergeJoinTransformation) ProcessMessage ¶ added in v0.172.0
func (t *MergeJoinTransformation) ProcessMessage(m execute.Message) error
type SortMergeJoinPredicateRule ¶ added in v0.168.0
type SortMergeJoinPredicateRule struct{}
func (SortMergeJoinPredicateRule) Name ¶ added in v0.168.0
func (SortMergeJoinPredicateRule) Name() string
func (SortMergeJoinPredicateRule) Pattern ¶ added in v0.168.0
func (SortMergeJoinPredicateRule) Pattern() plan.Pattern
type SortMergeJoinProcedureSpec ¶ added in v0.168.0
type SortMergeJoinProcedureSpec EquiJoinProcedureSpec
func (*SortMergeJoinProcedureSpec) Copy ¶ added in v0.168.0
func (p *SortMergeJoinProcedureSpec) Copy() plan.ProcedureSpec
func (*SortMergeJoinProcedureSpec) Cost ¶ added in v0.168.0
func (p *SortMergeJoinProcedureSpec) Cost(inStats []plan.Statistics) (cost plan.Cost, outStats plan.Statistics)
func (*SortMergeJoinProcedureSpec) Kind ¶ added in v0.168.0
func (p *SortMergeJoinProcedureSpec) Kind() plan.ProcedureKind
func (*SortMergeJoinProcedureSpec) RequiredAttributes ¶ added in v0.175.0
func (p *SortMergeJoinProcedureSpec) RequiredAttributes() []plan.PhysicalAttributes
RequiredAttributes says that merge join must have its left input sorted by the left side join keys, and the right input must be sorted by the right side join keys.