package join
import "github.com/influxdata/flux/stdlib/join"
Index ¶
- Constants
- type ColumnPair
- type EquiJoinPredicateRule
- func (EquiJoinPredicateRule) Name() string
- func (EquiJoinPredicateRule) Pattern() plan.Pattern
- func (EquiJoinPredicateRule) Rewrite(ctx context.Context, n plan.Node) (plan.Node, bool, error)
- type EquiJoinProcedureSpec
- func (p *EquiJoinProcedureSpec) Copy() plan.ProcedureSpec
- func (p *EquiJoinProcedureSpec) Cost(inStats []plan.Statistics) (cost plan.Cost, outStats plan.Statistics)
- func (p *EquiJoinProcedureSpec) Kind() plan.ProcedureKind
- type JoinFn
- func NewJoinFn(fn interpreter.ResolvedFunction) *JoinFn
- func (f *JoinFn) Eval(ctx context.Context, p *joinProduct, method string, mem memory.Allocator) ([]table.Chunk, bool, error)
- func (f *JoinFn) Prepare(ctx context.Context, lcols, rcols []flux.ColMeta) error
- func (f *JoinFn) ReturnType() semantic.MonoType
- func (f *JoinFn) Type() semantic.MonoType
- type JoinOpSpec
- type JoinProcedureSpec
- func (p *JoinProcedureSpec) Copy() plan.ProcedureSpec
- func (p *JoinProcedureSpec) Kind() plan.ProcedureKind
- type MergeJoinTransformation
- func NewMergeJoinTransformation( ctx context.Context, id execute.DatasetID, s plan.ProcedureSpec, leftID execute.DatasetID, rightID execute.DatasetID, mem memory.Allocator, ) (*MergeJoinTransformation, error)
- func (t *MergeJoinTransformation) Dataset() *execute.TransportDataset
- func (t *MergeJoinTransformation) ProcessMessage(m execute.Message) error
- type SortMergeJoinPredicateRule
- func (SortMergeJoinPredicateRule) Name() string
- func (SortMergeJoinPredicateRule) Pattern() plan.Pattern
- func (SortMergeJoinPredicateRule) Rewrite(ctx context.Context, n plan.Node) (plan.Node, bool, error)
- 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"
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
func (EquiJoinPredicateRule) Rewrite ¶
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) Prepare ¶
func (*JoinFn) ReturnType ¶
func (*JoinFn) Type ¶
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 NewMergeJoinTransformation ¶
func NewMergeJoinTransformation( ctx context.Context, id execute.DatasetID, s plan.ProcedureSpec, leftID execute.DatasetID, rightID execute.DatasetID, mem memory.Allocator, ) (*MergeJoinTransformation, error)
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
func (SortMergeJoinPredicateRule) Rewrite ¶
func (SortMergeJoinPredicateRule) Rewrite(ctx context.Context, n plan.Node) (plan.Node, bool, error)
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.
Source Files ¶
equijoin.go join.go join_fn.go join_key.go merge_join.go sort_merge_join.go
- Version
- v0.196.1 (latest)
- Published
- Feb 19, 2025
- Platform
- linux/amd64
- Imports
- 20 packages
- Last checked
- 1 day ago –
Tools for package owners.