Documentation ¶
Index ¶
- type Aggregate
- type AliasedExpression
- func (alExpr *AliasedExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (alExpr *AliasedExpression) ExpressionName() octosql.VariableName
- func (alExpr *AliasedExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (alExpr *AliasedExpression) MaterializeNamed(ctx context.Context, matCtx *MaterializationContext) (execution.NamedExpression, error)
- func (alExpr *AliasedExpression) Transform(ctx context.Context, transformers *Transformers) Expression
- func (alExpr *AliasedExpression) TransformNamed(ctx context.Context, transformers *Transformers) NamedExpression
- func (alExpr *AliasedExpression) Visualize() *graph.Node
- type And
- func (f *And) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (f *And) ExtractPredicates() []*Predicate
- func (f *And) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Formula, error)
- func (f *And) SplitByAnd() []Formula
- func (f *And) Transform(ctx context.Context, transformers *Transformers) Formula
- func (f *And) Visualize() *graph.Node
- type Constant
- func (f *Constant) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (f *Constant) ExtractPredicates() []*Predicate
- func (f *Constant) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Formula, error)
- func (f *Constant) SplitByAnd() []Formula
- func (f *Constant) Transform(ctx context.Context, transformers *Transformers) Formula
- func (f *Constant) Visualize() *graph.Node
- type ConstantStrategy
- type CountingTrigger
- type DataSourceBuilder
- func (dsb *DataSourceBuilder) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
- func (dsb *DataSourceBuilder) Metadata() *metadata.NodeMetadata
- func (dsb *DataSourceBuilder) Transform(ctx context.Context, transformers *Transformers) Node
- func (dsb *DataSourceBuilder) Visualize() *graph.Node
- type DataSourceBuilderFactory
- type DataSourceMaterializerFunc
- type DataSourceRepository
- func (repo *DataSourceRepository) Get(dataSourceName, alias string) ([]Node, error)
- func (repo *DataSourceRepository) Register(dataSourceName string, factory DataSourceBuilderFactory) error
- func (repo *DataSourceRepository) WithFactory(dataSourceName string, factory DataSourceBuilderFactory) *DataSourceRepository
- type DelayTrigger
- type Distinct
- type Expression
- type Factory
- type FieldType
- type Filter
- type Formula
- type FunctionExpression
- func (fe *FunctionExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (fe *FunctionExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (fe *FunctionExpression) Transform(ctx context.Context, transformers *Transformers) Expression
- func (fe *FunctionExpression) Visualize() *graph.Node
- type GroupBy
- type KeyHashingStrategy
- type LogicExpression
- func (le *LogicExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (le *LogicExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (le *LogicExpression) Transform(ctx context.Context, transformers *Transformers) Expression
- func (le *LogicExpression) Visualize() *graph.Node
- type LookupJoin
- func (node *LookupJoin) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
- func (node *LookupJoin) Metadata() *metadata.NodeMetadata
- func (node *LookupJoin) Transform(ctx context.Context, transformers *Transformers) Node
- func (node *LookupJoin) Visualize() *graph.Node
- type Map
- type MaterializationContext
- type NamedExpression
- type NextShuffleMetadataChange
- func (node *NextShuffleMetadataChange) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
- func (node *NextShuffleMetadataChange) Metadata() *metadata.NodeMetadata
- func (node *NextShuffleMetadataChange) Transform(ctx context.Context, transformers *Transformers) Node
- func (node *NextShuffleMetadataChange) Visualize() *graph.Node
- type Node
- type NodeExpression
- func (ne *NodeExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (ne *NodeExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (ne *NodeExpression) Transform(ctx context.Context, transformers *Transformers) Expression
- func (ne *NodeExpression) Visualize() *graph.Node
- type Not
- func (f *Not) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (f *Not) ExtractPredicates() []*Predicate
- func (f *Not) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Formula, error)
- func (f *Not) SplitByAnd() []Formula
- func (f *Not) Transform(ctx context.Context, transformers *Transformers) Formula
- func (f *Not) Visualize() *graph.Node
- type Or
- func (f *Or) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (f *Or) ExtractPredicates() []*Predicate
- func (f *Or) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Formula, error)
- func (f *Or) SplitByAnd() []Formula
- func (f *Or) Transform(ctx context.Context, transformers *Transformers) Formula
- func (f *Or) Visualize() *graph.Node
- type OrderBy
- type OrderDirection
- type OutputOptions
- type Predicate
- func (f *Predicate) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (f *Predicate) ExtractPredicates() []*Predicate
- func (f *Predicate) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Formula, error)
- func (f *Predicate) SplitByAnd() []Formula
- func (f *Predicate) Transform(ctx context.Context, transformers *Transformers) Formula
- func (f *Predicate) Visualize() *graph.Node
- type RecordExpression
- func (r *RecordExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (r *RecordExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (r *RecordExpression) Transform(ctx context.Context, transformers *Transformers) Expression
- func (r *RecordExpression) Visualize() *graph.Node
- type Relation
- type Requalifier
- func (node *Requalifier) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
- func (node *Requalifier) Metadata() *metadata.NodeMetadata
- func (node *Requalifier) Transform(ctx context.Context, transformers *Transformers) Node
- func (node *Requalifier) Visualize() *graph.Node
- type Shuffle
- type ShuffleStrategy
- type StarExpression
- func (se *StarExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (se *StarExpression) ExpressionName() octosql.VariableName
- func (se *StarExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (se *StarExpression) MaterializeNamed(ctx context.Context, matCtx *MaterializationContext) (execution.NamedExpression, error)
- func (se *StarExpression) Transform(ctx context.Context, transformers *Transformers) Expression
- func (se *StarExpression) TransformNamed(ctx context.Context, transformers *Transformers) NamedExpression
- func (se *StarExpression) Visualize() *graph.Node
- type StreamJoin
- func (node *StreamJoin) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
- func (node *StreamJoin) Metadata() *metadata.NodeMetadata
- func (node *StreamJoin) Transform(ctx context.Context, transformers *Transformers) Node
- func (node *StreamJoin) Visualize() *graph.Node
- type StubNode
- type TableValuedFunction
- func (node *TableValuedFunction) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
- func (node *TableValuedFunction) Metadata() *metadata.NodeMetadata
- func (node *TableValuedFunction) Transform(ctx context.Context, transformers *Transformers) Node
- func (node *TableValuedFunction) Visualize() *graph.Node
- type TableValuedFunctionArgumentValue
- type TableValuedFunctionArgumentValueDescriptor
- type TableValuedFunctionArgumentValueExpression
- type TableValuedFunctionArgumentValueTable
- type Transformers
- type Trigger
- type Tuple
- func (tup *Tuple) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (tup *Tuple) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (tup *Tuple) Transform(ctx context.Context, transformers *Transformers) Expression
- func (tup *Tuple) Visualize() *graph.Node
- type Variable
- func (v *Variable) DoesMatchNamespace(namespace *metadata.Namespace) bool
- func (v *Variable) ExpressionName() octosql.VariableName
- func (v *Variable) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
- func (v *Variable) MaterializeNamed(ctx context.Context, matCtx *MaterializationContext) (execution.NamedExpression, error)
- func (v *Variable) Transform(ctx context.Context, transformers *Transformers) Expression
- func (v *Variable) TransformNamed(ctx context.Context, transformers *Transformers) NamedExpression
- func (v *Variable) Visualize() *graph.Node
- type WatermarkTrigger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Aggregate ¶
type Aggregate string
const ( Avg Aggregate = "avg" AvgDistinct Aggregate = "avg_distinct" Count Aggregate = "count" CountDistinct Aggregate = "count_distinct" First Aggregate = "first" Key Aggregate = "key" Last Aggregate = "last" Max Aggregate = "max" Min Aggregate = "min" Sum Aggregate = "sum" SumDistinct Aggregate = "sum_distinct" )
func NewAggregate ¶
type AliasedExpression ¶
type AliasedExpression struct { ExpressionAlias octosql.VariableName Expr Expression }
AliasedExpression describes an expression which is explicitly named.
func NewAliasedExpression ¶
func NewAliasedExpression(name octosql.VariableName, expr Expression) *AliasedExpression
func (*AliasedExpression) DoesMatchNamespace ¶ added in v0.3.0
func (alExpr *AliasedExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
func (*AliasedExpression) ExpressionName ¶ added in v0.3.0
func (alExpr *AliasedExpression) ExpressionName() octosql.VariableName
func (*AliasedExpression) Materialize ¶
func (alExpr *AliasedExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*AliasedExpression) MaterializeNamed ¶
func (alExpr *AliasedExpression) MaterializeNamed(ctx context.Context, matCtx *MaterializationContext) (execution.NamedExpression, error)
func (*AliasedExpression) Transform ¶
func (alExpr *AliasedExpression) Transform(ctx context.Context, transformers *Transformers) Expression
func (*AliasedExpression) TransformNamed ¶
func (alExpr *AliasedExpression) TransformNamed(ctx context.Context, transformers *Transformers) NamedExpression
func (*AliasedExpression) Visualize ¶ added in v0.3.0
func (alExpr *AliasedExpression) Visualize() *graph.Node
type And ¶
type And struct {
Left, Right Formula
}
func (*And) DoesMatchNamespace ¶ added in v0.3.0
func (*And) ExtractPredicates ¶
func (*And) Materialize ¶
func (*And) SplitByAnd ¶
type Constant ¶
type Constant struct {
Value bool
}
func NewConstant ¶
func (*Constant) DoesMatchNamespace ¶ added in v0.3.0
func (*Constant) ExtractPredicates ¶
func (*Constant) Materialize ¶
func (*Constant) SplitByAnd ¶
type ConstantStrategy ¶ added in v0.3.0
type ConstantStrategy struct {
// contains filtered or unexported fields
}
func (*ConstantStrategy) Materialize ¶ added in v0.3.0
func (s *ConstantStrategy) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.ShuffleStrategyPrototype, error)
func (*ConstantStrategy) Transform ¶ added in v0.3.0
func (s *ConstantStrategy) Transform(ctx context.Context, transformers *Transformers) ShuffleStrategy
func (*ConstantStrategy) Visualize ¶ added in v0.3.0
func (s *ConstantStrategy) Visualize() *graph.Node
type CountingTrigger ¶ added in v0.3.0
type CountingTrigger struct {
Count Expression
}
func NewCountingTrigger ¶ added in v0.3.0
func NewCountingTrigger(count Expression) *CountingTrigger
func (*CountingTrigger) Materialize ¶ added in v0.3.0
func (c *CountingTrigger) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.TriggerPrototype, error)
func (*CountingTrigger) Transform ¶ added in v0.3.0
func (c *CountingTrigger) Transform(ctx context.Context, transformers *Transformers) Trigger
func (*CountingTrigger) Visualize ¶ added in v0.3.0
func (c *CountingTrigger) Visualize() *graph.Node
type DataSourceBuilder ¶
type DataSourceBuilder struct { Materializer DataSourceMaterializerFunc PrimaryKeys []octosql.VariableName AvailableFilters map[FieldType]map[Relation]struct{} Filter Formula Name string Alias string Partition int // This field will be used to decide on join strategies or if the source is a stream. Cardinality metadata.Cardinality }
DataSourceBuilder is used to build a data source instance with an alias. It may be given filters, which are later executed at the database level.
func (*DataSourceBuilder) Materialize ¶
func (dsb *DataSourceBuilder) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
func (*DataSourceBuilder) Metadata ¶ added in v0.2.0
func (dsb *DataSourceBuilder) Metadata() *metadata.NodeMetadata
func (*DataSourceBuilder) Transform ¶
func (dsb *DataSourceBuilder) Transform(ctx context.Context, transformers *Transformers) Node
func (*DataSourceBuilder) Visualize ¶ added in v0.3.0
func (dsb *DataSourceBuilder) Visualize() *graph.Node
type DataSourceBuilderFactory ¶
DataSourceBuilderFactory is a function used to create a new aliased data source builder.
func NewDataSourceBuilderFactory ¶
func NewDataSourceBuilderFactory(materializer DataSourceMaterializerFunc, primaryKeys []octosql.VariableName, availableFilters map[FieldType]map[Relation]struct{}, cardinality metadata.Cardinality, partitions int) DataSourceBuilderFactory
type DataSourceMaterializerFunc ¶ added in v0.3.0
type DataSourceRepository ¶
type DataSourceRepository struct {
// contains filtered or unexported fields
}
DataSourceRepository is used to register factories for builders for any data source. It can also later create a builder for any of those data source.
func CreateDataSourceRepositoryFromConfig ¶ added in v0.1.1
func CreateDataSourceRepositoryFromConfig(factories map[string]Factory, config *config.Config) (*DataSourceRepository, error)
CreateDataSourceRepositoryFromConfig creates a DataSourceRepository from a config, using the given configuration reading data source factories. The map should be given as databaseType -> Factory.
func NewDataSourceRepository ¶
func NewDataSourceRepository() *DataSourceRepository
func (*DataSourceRepository) Get ¶
func (repo *DataSourceRepository) Get(dataSourceName, alias string) ([]Node, error)
Get gets a new builder for a given data source.
func (*DataSourceRepository) Register ¶
func (repo *DataSourceRepository) Register(dataSourceName string, factory DataSourceBuilderFactory) error
Register registers a builder factory for the given data source ColumnName.
func (*DataSourceRepository) WithFactory ¶ added in v0.3.0
func (repo *DataSourceRepository) WithFactory(dataSourceName string, factory DataSourceBuilderFactory) *DataSourceRepository
Register registers a builder factory for the given data source ColumnName.
type DelayTrigger ¶ added in v0.3.0
type DelayTrigger struct {
Delay Expression
}
func NewDelayTrigger ¶ added in v0.3.0
func NewDelayTrigger(delay Expression) *DelayTrigger
func (*DelayTrigger) Materialize ¶ added in v0.3.0
func (c *DelayTrigger) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.TriggerPrototype, error)
func (*DelayTrigger) Transform ¶ added in v0.3.0
func (c *DelayTrigger) Transform(ctx context.Context, transformers *Transformers) Trigger
func (*DelayTrigger) Visualize ¶ added in v0.3.0
func (c *DelayTrigger) Visualize() *graph.Node
type Distinct ¶
type Distinct struct {
Source Node
}
func NewDistinct ¶
func (*Distinct) Materialize ¶
func (*Distinct) Metadata ¶ added in v0.2.0
func (node *Distinct) Metadata() *metadata.NodeMetadata
type Expression ¶
type Expression interface { // Transform returns a new Expression after recursively calling Transform Transform(ctx context.Context, transformers *Transformers) Expression Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error) DoesMatchNamespace(namespace *metadata.Namespace) bool graph.Visualizer }
Expressions describes a single value source.
func NewRecordExpression ¶ added in v0.3.0
func NewRecordExpression() Expression
type Factory ¶ added in v0.1.1
type Factory func(dbConfig map[string]interface{}) (DataSourceBuilderFactory, error)
type FieldType ¶
type FieldType string
FieldType describes if a key is a primary or secondary attribute.
type Filter ¶
func (*Filter) Materialize ¶
func (*Filter) Metadata ¶ added in v0.2.0
func (node *Filter) Metadata() *metadata.NodeMetadata
type Formula ¶
type Formula interface { // Transform returns a new Formula after recursively calling Transform Transform(ctx context.Context, transformers *Transformers) Formula SplitByAnd() []Formula ExtractPredicates() []*Predicate Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Formula, error) DoesMatchNamespace(namespace *metadata.Namespace) bool graph.Visualizer }
Formula describes any source of a logical value.
type FunctionExpression ¶
type FunctionExpression struct { Name string Arguments []Expression }
func NewFunctionExpression ¶
func NewFunctionExpression(name string, args []Expression) *FunctionExpression
func (*FunctionExpression) DoesMatchNamespace ¶ added in v0.3.0
func (fe *FunctionExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
func (*FunctionExpression) Materialize ¶
func (fe *FunctionExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*FunctionExpression) Transform ¶
func (fe *FunctionExpression) Transform(ctx context.Context, transformers *Transformers) Expression
func (*FunctionExpression) Visualize ¶ added in v0.3.0
func (fe *FunctionExpression) Visualize() *graph.Node
type GroupBy ¶
type GroupBy struct { Source Node Key []Expression Fields []octosql.VariableName Aggregates []Aggregate As []octosql.VariableName Triggers []Trigger }
func NewGroupBy ¶
func NewGroupBy(source Node, key []Expression, fields []octosql.VariableName, aggregates []Aggregate, as []octosql.VariableName, triggers []Trigger) *GroupBy
func (*GroupBy) Materialize ¶
func (*GroupBy) Metadata ¶ added in v0.2.0
func (node *GroupBy) Metadata() *metadata.NodeMetadata
type KeyHashingStrategy ¶ added in v0.3.0
type KeyHashingStrategy struct {
Key []Expression
}
func (*KeyHashingStrategy) Materialize ¶ added in v0.3.0
func (s *KeyHashingStrategy) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.ShuffleStrategyPrototype, error)
func (*KeyHashingStrategy) Transform ¶ added in v0.3.0
func (s *KeyHashingStrategy) Transform(ctx context.Context, transformers *Transformers) ShuffleStrategy
func (*KeyHashingStrategy) Visualize ¶ added in v0.3.0
func (s *KeyHashingStrategy) Visualize() *graph.Node
type LogicExpression ¶
type LogicExpression struct {
Formula Formula
}
LogicExpressions describes a boolean expression which get's it's value from the logic formula underneath.
func NewLogicExpression ¶
func NewLogicExpression(formula Formula) *LogicExpression
func (*LogicExpression) DoesMatchNamespace ¶ added in v0.3.0
func (le *LogicExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
func (*LogicExpression) Materialize ¶
func (le *LogicExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*LogicExpression) Transform ¶
func (le *LogicExpression) Transform(ctx context.Context, transformers *Transformers) Expression
func (*LogicExpression) Visualize ¶ added in v0.3.0
func (le *LogicExpression) Visualize() *graph.Node
type LookupJoin ¶ added in v0.3.0
type LookupJoin struct {
// contains filtered or unexported fields
}
func NewLookupJoin ¶ added in v0.3.0
func NewLookupJoin(source, joined Node, isLeftJoin bool) *LookupJoin
func (*LookupJoin) Materialize ¶ added in v0.3.0
func (node *LookupJoin) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
func (*LookupJoin) Metadata ¶ added in v0.3.0
func (node *LookupJoin) Metadata() *metadata.NodeMetadata
func (*LookupJoin) Transform ¶ added in v0.3.0
func (node *LookupJoin) Transform(ctx context.Context, transformers *Transformers) Node
func (*LookupJoin) Visualize ¶ added in v0.3.0
func (node *LookupJoin) Visualize() *graph.Node
type Map ¶
type Map struct { Expressions []NamedExpression Source Node Keep bool }
func (*Map) Materialize ¶
func (*Map) Metadata ¶ added in v0.2.0
func (node *Map) Metadata() *metadata.NodeMetadata
type MaterializationContext ¶ added in v0.1.1
MaterializationContext is a structure containing the configuration for the materialization.
func NewMaterializationContext ¶ added in v0.1.1
func NewMaterializationContext(config *config.Config, storage storage.Storage) *MaterializationContext
type NamedExpression ¶
type NamedExpression interface { Expression // TransformNamed returns a new NamedExpression after recursively calling Transform ExpressionName() octosql.VariableName TransformNamed(ctx context.Context, transformers *Transformers) NamedExpression MaterializeNamed(ctx context.Context, matCtx *MaterializationContext) (execution.NamedExpression, error) }
NamedExpressions describes a single named value source.
type NextShuffleMetadataChange ¶ added in v0.3.0
func NewNextShuffleMetadataChange ¶ added in v0.3.0
func NewNextShuffleMetadataChange(shuffleIDAddSuffix string, partition int, source Node) *NextShuffleMetadataChange
func (*NextShuffleMetadataChange) Materialize ¶ added in v0.3.0
func (node *NextShuffleMetadataChange) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
func (*NextShuffleMetadataChange) Metadata ¶ added in v0.3.0
func (node *NextShuffleMetadataChange) Metadata() *metadata.NodeMetadata
func (*NextShuffleMetadataChange) Transform ¶ added in v0.3.0
func (node *NextShuffleMetadataChange) Transform(ctx context.Context, transformers *Transformers) Node
func (*NextShuffleMetadataChange) Visualize ¶ added in v0.3.0
func (node *NextShuffleMetadataChange) Visualize() *graph.Node
type Node ¶
type Node interface { // Transform returns a new Node after recursively calling Transform Transform(ctx context.Context, transformers *Transformers) Node Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error) Metadata() *metadata.NodeMetadata graph.Visualizer }
Node describes a single record stream source.
func NewShuffle ¶ added in v0.3.0
func NewShuffle(outputPartitionCount int, strategy ShuffleStrategy, sourceNodes []Node) []Node
type NodeExpression ¶
type NodeExpression struct {
Node Node
}
NodeExpressions describes an expression which gets it's value from a node underneath.
func NewNodeExpression ¶
func NewNodeExpression(node Node) *NodeExpression
func (*NodeExpression) DoesMatchNamespace ¶ added in v0.3.0
func (ne *NodeExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
func (*NodeExpression) Materialize ¶
func (ne *NodeExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*NodeExpression) Transform ¶
func (ne *NodeExpression) Transform(ctx context.Context, transformers *Transformers) Expression
func (*NodeExpression) Visualize ¶ added in v0.3.0
func (ne *NodeExpression) Visualize() *graph.Node
type Not ¶
type Not struct {
Child Formula
}
func (*Not) DoesMatchNamespace ¶ added in v0.3.0
func (*Not) ExtractPredicates ¶
func (*Not) Materialize ¶
func (*Not) SplitByAnd ¶
type Or ¶
type Or struct {
Left, Right Formula
}
func (*Or) DoesMatchNamespace ¶ added in v0.3.0
func (*Or) ExtractPredicates ¶
func (*Or) Materialize ¶
func (*Or) SplitByAnd ¶
type OrderBy ¶
type OrderBy struct { Expressions []Expression Directions []OrderDirection Source Node }
func NewOrderBy ¶
func NewOrderBy(expressions []Expression, directions []OrderDirection, source Node) *OrderBy
func (*OrderBy) Materialize ¶
func (*OrderBy) Metadata ¶ added in v0.2.0
func (node *OrderBy) Metadata() *metadata.NodeMetadata
type OrderDirection ¶
type OrderDirection string
const ( Ascending OrderDirection = "asc" Descending OrderDirection = "desc" )
type OutputOptions ¶ added in v0.3.0
type OutputOptions struct { OrderByExpressions []Expression OrderByDirections []OrderDirection Limit Expression Offset Expression }
func NewOutputOptions ¶ added in v0.3.0
func NewOutputOptions( orderByExpressions []Expression, orderByDirections []OrderDirection, limit Expression, offset Expression, ) *OutputOptions
func (*OutputOptions) Materialize ¶ added in v0.3.0
func (opts *OutputOptions) Materialize(ctx context.Context, matCtx *MaterializationContext) (*execution.OutputOptions, error)
type Predicate ¶
type Predicate struct { Left Expression Relation Relation Right Expression }
func NewPredicate ¶
func NewPredicate(left Expression, relation Relation, right Expression) *Predicate
func (*Predicate) DoesMatchNamespace ¶ added in v0.3.0
func (*Predicate) ExtractPredicates ¶
func (*Predicate) Materialize ¶
func (*Predicate) SplitByAnd ¶
type RecordExpression ¶ added in v0.3.0
type RecordExpression struct { }
func (*RecordExpression) DoesMatchNamespace ¶ added in v0.3.0
func (r *RecordExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
func (*RecordExpression) Materialize ¶ added in v0.3.0
func (r *RecordExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*RecordExpression) Transform ¶ added in v0.3.0
func (r *RecordExpression) Transform(ctx context.Context, transformers *Transformers) Expression
func (*RecordExpression) Visualize ¶ added in v0.3.0
func (r *RecordExpression) Visualize() *graph.Node
type Relation ¶
type Relation string
Relation describes a comparison operator.
func NewRelation ¶
func (Relation) Materialize ¶
type Requalifier ¶
func NewRequalifier ¶
func NewRequalifier(qualifier string, child Node) *Requalifier
func (*Requalifier) Materialize ¶
func (node *Requalifier) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
func (*Requalifier) Metadata ¶ added in v0.2.0
func (node *Requalifier) Metadata() *metadata.NodeMetadata
func (*Requalifier) Transform ¶
func (node *Requalifier) Transform(ctx context.Context, transformers *Transformers) Node
func (*Requalifier) Visualize ¶ added in v0.3.0
func (node *Requalifier) Visualize() *graph.Node
type Shuffle ¶ added in v0.3.0
type Shuffle struct { OutputPartitionCount int Strategy ShuffleStrategy Sources []Node }
func (*Shuffle) Materialize ¶ added in v0.3.0
func (*Shuffle) Metadata ¶ added in v0.3.0
func (node *Shuffle) Metadata() *metadata.NodeMetadata
type ShuffleStrategy ¶ added in v0.3.0
type ShuffleStrategy interface { Transform(ctx context.Context, transformers *Transformers) ShuffleStrategy Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.ShuffleStrategyPrototype, error) Visualize() *graph.Node }
func NewConstantStrategy ¶ added in v0.3.0
func NewConstantStrategy(partition int) ShuffleStrategy
func NewKeyHashingStrategy ¶ added in v0.3.0
func NewKeyHashingStrategy(key []Expression) ShuffleStrategy
type StarExpression ¶ added in v0.3.0
type StarExpression struct {
Qualifier string
}
func NewStarExpression ¶ added in v0.3.0
func NewStarExpression(qualifier string) *StarExpression
func (*StarExpression) DoesMatchNamespace ¶ added in v0.3.0
func (se *StarExpression) DoesMatchNamespace(namespace *metadata.Namespace) bool
func (*StarExpression) ExpressionName ¶ added in v0.3.0
func (se *StarExpression) ExpressionName() octosql.VariableName
func (*StarExpression) Materialize ¶ added in v0.3.0
func (se *StarExpression) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*StarExpression) MaterializeNamed ¶ added in v0.3.0
func (se *StarExpression) MaterializeNamed(ctx context.Context, matCtx *MaterializationContext) (execution.NamedExpression, error)
func (*StarExpression) Transform ¶ added in v0.3.0
func (se *StarExpression) Transform(ctx context.Context, transformers *Transformers) Expression
func (*StarExpression) TransformNamed ¶ added in v0.3.0
func (se *StarExpression) TransformNamed(ctx context.Context, transformers *Transformers) NamedExpression
func (*StarExpression) Visualize ¶ added in v0.3.0
func (se *StarExpression) Visualize() *graph.Node
type StreamJoin ¶ added in v0.3.0
type StreamJoin struct { Source Node Joined Node SourceKey []Expression JoinedKey []Expression EventTimeField octosql.VariableName JoinType execution.JoinType Triggers []Trigger }
func NewStreamJoin ¶ added in v0.3.0
func NewStreamJoin(source, joined Node, sourceKey, joinedKey []Expression, eventTimeField octosql.VariableName, joinType execution.JoinType, triggers []Trigger) *StreamJoin
func (*StreamJoin) Materialize ¶ added in v0.3.0
func (node *StreamJoin) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
func (*StreamJoin) Metadata ¶ added in v0.3.0
func (node *StreamJoin) Metadata() *metadata.NodeMetadata
func (*StreamJoin) Transform ¶ added in v0.3.0
func (node *StreamJoin) Transform(ctx context.Context, transformers *Transformers) Node
func (*StreamJoin) Visualize ¶ added in v0.3.0
func (node *StreamJoin) Visualize() *graph.Node
type StubNode ¶ added in v0.3.0
type StubNode struct {
NodeMetadata *metadata.NodeMetadata
}
func NewStubNode ¶ added in v0.3.0
func NewStubNode(metadata *metadata.NodeMetadata) *StubNode
func (*StubNode) Materialize ¶ added in v0.3.0
func (*StubNode) Metadata ¶ added in v0.3.0
func (s *StubNode) Metadata() *metadata.NodeMetadata
type TableValuedFunction ¶ added in v0.2.0
type TableValuedFunction struct { Name string Arguments map[octosql.VariableName]TableValuedFunctionArgumentValue }
func NewTableValuedFunction ¶ added in v0.2.0
func NewTableValuedFunction(name string, args map[octosql.VariableName]TableValuedFunctionArgumentValue) *TableValuedFunction
func (*TableValuedFunction) Materialize ¶ added in v0.2.0
func (node *TableValuedFunction) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Node, error)
func (*TableValuedFunction) Metadata ¶ added in v0.2.0
func (node *TableValuedFunction) Metadata() *metadata.NodeMetadata
TODO: fix Namespace here
func (*TableValuedFunction) Transform ¶ added in v0.2.0
func (node *TableValuedFunction) Transform(ctx context.Context, transformers *Transformers) Node
func (*TableValuedFunction) Visualize ¶ added in v0.3.0
func (node *TableValuedFunction) Visualize() *graph.Node
type TableValuedFunctionArgumentValue ¶ added in v0.2.0
type TableValuedFunctionArgumentValue interface { Transform(ctx context.Context, transformers *Transformers) TableValuedFunctionArgumentValue graph.Visualizer // contains filtered or unexported methods }
type TableValuedFunctionArgumentValueDescriptor ¶ added in v0.2.0
type TableValuedFunctionArgumentValueDescriptor struct {
Descriptor octosql.VariableName
}
func NewTableValuedFunctionArgumentValueDescriptor ¶ added in v0.2.0
func NewTableValuedFunctionArgumentValueDescriptor(descriptor octosql.VariableName) *TableValuedFunctionArgumentValueDescriptor
func (*TableValuedFunctionArgumentValueDescriptor) Transform ¶ added in v0.2.0
func (arg *TableValuedFunctionArgumentValueDescriptor) Transform(ctx context.Context, transformers *Transformers) TableValuedFunctionArgumentValue
func (*TableValuedFunctionArgumentValueDescriptor) Visualize ¶ added in v0.3.0
func (arg *TableValuedFunctionArgumentValueDescriptor) Visualize() *graph.Node
type TableValuedFunctionArgumentValueExpression ¶ added in v0.2.0
type TableValuedFunctionArgumentValueExpression struct {
Expression Expression
}
func NewTableValuedFunctionArgumentValueExpression ¶ added in v0.2.0
func NewTableValuedFunctionArgumentValueExpression(expression Expression) *TableValuedFunctionArgumentValueExpression
func (*TableValuedFunctionArgumentValueExpression) Transform ¶ added in v0.2.0
func (arg *TableValuedFunctionArgumentValueExpression) Transform(ctx context.Context, transformers *Transformers) TableValuedFunctionArgumentValue
func (*TableValuedFunctionArgumentValueExpression) Visualize ¶ added in v0.3.0
func (arg *TableValuedFunctionArgumentValueExpression) Visualize() *graph.Node
type TableValuedFunctionArgumentValueTable ¶ added in v0.2.0
type TableValuedFunctionArgumentValueTable struct {
Source Node
}
func NewTableValuedFunctionArgumentValueTable ¶ added in v0.2.0
func NewTableValuedFunctionArgumentValueTable(source Node) *TableValuedFunctionArgumentValueTable
func (*TableValuedFunctionArgumentValueTable) Transform ¶ added in v0.2.0
func (arg *TableValuedFunctionArgumentValueTable) Transform(ctx context.Context, transformers *Transformers) TableValuedFunctionArgumentValue
func (*TableValuedFunctionArgumentValueTable) Visualize ¶ added in v0.3.0
func (arg *TableValuedFunctionArgumentValueTable) Visualize() *graph.Node
type Transformers ¶
type Transformers struct { NodeT func(Node) Node ExprT func(Expression) Expression NamedExprT func(NamedExpression) NamedExpression FormulaT func(Formula) Formula TableValuedFunctionArgumentValueT func(TableValuedFunctionArgumentValue) TableValuedFunctionArgumentValue TriggerT func(Trigger) Trigger ShuffleStrategyT func(ShuffleStrategy) ShuffleStrategy }
Transformers is a structure containing functions to transform each of the physical plan components.
type Trigger ¶ added in v0.3.0
type Trigger interface { // Transform returns a new Expression after recursively calling Transform Transform(ctx context.Context, transformers *Transformers) Trigger Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.TriggerPrototype, error) graph.Visualizer }
type Tuple ¶
type Tuple struct {
Expressions []Expression
}
TupleExpression describes an expression which is a tuple of subexpressions.
func NewTuple ¶
func NewTuple(expressions []Expression) *Tuple
func (*Tuple) DoesMatchNamespace ¶ added in v0.3.0
func (*Tuple) Materialize ¶
func (tup *Tuple) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*Tuple) Transform ¶
func (tup *Tuple) Transform(ctx context.Context, transformers *Transformers) Expression
type Variable ¶
type Variable struct {
Name octosql.VariableName
}
Variables describes a variable name.
func NewVariable ¶
func NewVariable(name octosql.VariableName) *Variable
func (*Variable) DoesMatchNamespace ¶ added in v0.3.0
func (*Variable) ExpressionName ¶ added in v0.3.0
func (v *Variable) ExpressionName() octosql.VariableName
func (*Variable) Materialize ¶
func (v *Variable) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.Expression, error)
func (*Variable) MaterializeNamed ¶
func (v *Variable) MaterializeNamed(ctx context.Context, matCtx *MaterializationContext) (execution.NamedExpression, error)
func (*Variable) Transform ¶
func (v *Variable) Transform(ctx context.Context, transformers *Transformers) Expression
func (*Variable) TransformNamed ¶
func (v *Variable) TransformNamed(ctx context.Context, transformers *Transformers) NamedExpression
type WatermarkTrigger ¶ added in v0.3.0
type WatermarkTrigger struct { }
func NewWatermarkTrigger ¶ added in v0.3.0
func NewWatermarkTrigger() *WatermarkTrigger
func (*WatermarkTrigger) Materialize ¶ added in v0.3.0
func (c *WatermarkTrigger) Materialize(ctx context.Context, matCtx *MaterializationContext) (execution.TriggerPrototype, error)
func (*WatermarkTrigger) Transform ¶ added in v0.3.0
func (c *WatermarkTrigger) Transform(ctx context.Context, transformers *Transformers) Trigger
func (*WatermarkTrigger) Visualize ¶ added in v0.3.0
func (c *WatermarkTrigger) Visualize() *graph.Node