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 ¶
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 ¶
func NewJoinFn(fn interpreter.ResolvedFunction) *JoinFn
func (*JoinFn) Eval ¶
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 ¶
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 ¶
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 (*MergeJoinTransformation) Dataset ¶
func (t *MergeJoinTransformation) Dataset() *execute.TransportDataset
func (*MergeJoinTransformation) ProcessMessage ¶
func (t *MergeJoinTransformation) ProcessMessage(m execute.Message) error
type SortMergeJoinPredicateRule ¶
type SortMergeJoinPredicateRule struct{}
func (SortMergeJoinPredicateRule) Name ¶
func (SortMergeJoinPredicateRule) Name() string
func (SortMergeJoinPredicateRule) Pattern ¶
func (SortMergeJoinPredicateRule) Pattern() plan.Pattern
type SortMergeJoinProcedureSpec ¶
type SortMergeJoinProcedureSpec EquiJoinProcedureSpec
func (*SortMergeJoinProcedureSpec) Copy ¶
func (p *SortMergeJoinProcedureSpec) Copy() plan.ProcedureSpec
func (*SortMergeJoinProcedureSpec) Cost ¶
func (p *SortMergeJoinProcedureSpec) Cost(inStats []plan.Statistics) (cost plan.Cost, outStats plan.Statistics)
func (*SortMergeJoinProcedureSpec) Kind ¶
func (p *SortMergeJoinProcedureSpec) Kind() plan.ProcedureKind
func (*SortMergeJoinProcedureSpec) RequiredAttributes ¶
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.