join

package
v0.180.1 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2022 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const EquiJoinKind = "equijoin"
View Source
const Join2Kind = "join.tables"
View Source
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) 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 (*EquiJoinProcedureSpec) Cost

func (p *EquiJoinProcedureSpec) Cost(inStats []plan.Statistics) (cost plan.Cost, outStats plan.Statistics)

func (*EquiJoinProcedureSpec) Kind

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) Prepare added in v0.172.0

func (f *JoinFn) Prepare(lcols, rcols []flux.ColMeta) error

func (*JoinFn) ReturnType added in v0.172.0

func (f *JoinFn) ReturnType() semantic.MonoType

func (*JoinFn) Type added in v0.172.0

func (f *JoinFn) Type() semantic.MonoType

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 (*JoinProcedureSpec) Kind

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 NewMergeJoinTransformation(
	ctx context.Context,
	id execute.DatasetID,
	s plan.ProcedureSpec,
	leftID execute.DatasetID,
	rightID execute.DatasetID,
	mem memory.Allocator,
) (*MergeJoinTransformation, error)

func (*MergeJoinTransformation) Dataset added in v0.172.0

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) Pattern added in v0.168.0

func (SortMergeJoinPredicateRule) Rewrite added in v0.168.0

type SortMergeJoinProcedureSpec added in v0.168.0

type SortMergeJoinProcedureSpec EquiJoinProcedureSpec

func (*SortMergeJoinProcedureSpec) Copy added in v0.168.0

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 (*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.

Jump to

Keyboard shortcuts

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