Package net.sf.farrago.fennel.rel

Defines relational expressions and rules for Fennel's physical algebra.

See:
          Description

Class Summary
CalcRelSplitter CalcRelSplitter operates on a CalcRel with multiple RexCall sub-expressions that cannot all be implemented by a single concrete RelNode.
CalcRelSplitter.HighestUsageFinder Builds an array of the highest level which contains an expression which uses each expression as an input.
CalcRelSplitter.ImplementTester Visitor which returns whether an expression can be implemented in a given type of relational expression.
CalcRelSplitter.InputToCommonExprConverter Shuttle which converts every reference to an input field in an expression to a reference to a common sub-expression.
CalcRelSplitter.MaxInputFinder Finds the highest level used by any of the inputs of a given expression.
CalcRelSplitter.RelType  
FarragoAutoCalcRule FarragoAutoCalcRule is a rule for implementing CalcRel via a combination of the Fennel Calculator (FennelCalcRel) and the Java Calculator (IterCalcRel).
FarragoAutoCalcRule.AutoCalcRelSplitter  
FarragoAutoCalcRule.FennelRelType  
FarragoAutoCalcRule.JavaRelType  
FarragoMultisetSplitterRule FarragoMultisetSplitterRule is a planner rule which removes multiset operations from an expression.
FennelAggRel FennelAggRel represents the Fennel implementation of aggregation.
FennelAggRule FennelAggRule is a rule for transforming AggregateRel to FennelAggRel.
FennelBernoulliSamplingRel FennelBernoulliSamplingRel implements Bernoulli-style table sampling using a generic Fennel XO.
FennelBernoulliSamplingRule FennelBernoulliSamplingRule converts a SamplingRel into a FennelBernoulliSamplingRel, regardless of whether the original SamplingRel specified Bernoulli or system sampling.
FennelBufferCommonRelSubExprRule FennelBufferCommonRelSubExprRule is a rule that places a Fennel buffering node on top of a common relational subexpression, provided it makes sense to do so from a cost perspective.
FennelBufferRel FennelBufferRel represents the Fennel implementation of a buffering stream.
FennelCalcRel FennelCalcRel is the relational expression corresponding to a Calc implemented inside of Fennel.
FennelCalcRule FennelCalcRule is a rule for implementing CalcRel via a Fennel Calculator (FennelCalcRel).
FennelCartesianJoinRule FennelCartesianJoinRule is a rule for converting an INNER JoinRel with no join condition into a FennelCartesianProductRel.
FennelCartesianProductRel FennelCartesianProductRel represents the Fennel implementation of Cartesian product.
FennelCollectRule FennelCollectRule is a rule to implement a call made with the SqlMultisetValueConstructor
FennelCorrelatorRule FennelCorrelatorRule is a rule to implement the join of two correlated streams.
FennelDistinctSortRule FennelDistinctSortRule is a rule for implementing DISTINCT via a Fennel sort.
FennelDoubleRel FennelDoubleRel is a FennelRel which takes two FennelRels as inputs.
FennelEmptyRule FennelEmptyRule provides an implementation for EmptyRel in terms of FennelValuesRel.
FennelIdxWriteRel FennelIdxWriteRel takes its input and writes the records into an index.
FennelInsertRenameRule FennelInsertRenameRule is a rule for converting a rename-only Project underneath an insert TableModificationRel into FennelRename.
FennelMergeRel FennelMergeRel represents the Fennel implementation of UNION ALL.
FennelMultipleRel Abstract base class for relational expressions which implement FennelRel and have variable numbers of inputs.
FennelMultiUseBufferRel FennelMultiUseBufferRel represents the Fennel implementation of a buffering stream that's used in multiple places in a stream graph.
FennelNestedLoopJoinRel FennelNestedLoopJoinRel represents the Fennel implementation of a nested loop join.
FennelNestedLoopJoinRule FennelNestedLoopJoinRule is a rule for converting a JoinRel with a join condition into a FennelNestedLoopJoinRel.
FennelOneRowRule FennelOneRowRule provides an implementation for OneRowRel in terms of FennelValuesRel.
FennelOptionalRel FennelOptionalRel is a FennelRel which either takes zero inputs or takes a single FennelRel as input.
FennelPullCollectRel FennelPullCollectRel is the relational expression corresponding to a collect implemented inside of Fennel.
FennelPullCorrelatorRel FennelPullCorrelatorRel is the relational expression corresponding to a correlation between two streams implemented inside of Fennel.
FennelPullUncollectRel FennelPullUncollectRel is the relational expression corresponding to an UNNEST (Uncollect) implemented inside of Fennel.
FennelRelUtil Static utilities for FennelRel implementations.
FennelRemoveRedundantSortRule FennelRemoveRedundantSortRule removes instances of SortRel which are already satisfied by the physical ordering produced by an underlying FennelRel.
FennelRenameRel FennelRenameRel is the Fennel implementation of a rename-only relational Project operator (which is a no-op).
FennelRenameRule FennelRenameRule is a rule for converting a rename-only Project into FennelRename.
FennelReshapeRel FennelReshapeRel represents the Fennel implementation of an execution stream that does projections, simple casting, and simple filtering.
FennelReshapeRule FennelReshapeRule is a rule that converts a CalcRel into a FennelReshapeRel, provided the CalcRel only references simple projections and contains a simple condition, if it has a condition.
FennelSingleRel FennelSingleRel is a FennelRel corresponding to SingleRel, and which only takes a FennelRel as input.
FennelSortRel FennelSortRel is the relational expression corresponding to a sort implemented inside of Fennel.
FennelSortRule FennelSortRule is a rule for implementing SortRel via a Fennel sort.
FennelTempIdxSearchRel FennelTempIdxSearchRel searches a temporary index that is built during runtime using search keys read through dynamic parameters and search directives passed in through its input.
FennelUncollectRule FennelUncollectRule is a rule to implement a call with the SqlStdOperatorTable.unnestOperator
FennelUnionRule Rule to convert a UnionRel to Fennel calling convention.
FennelValuesRel FennelValuesRel is Fennel implementation of ValuesRel.
FennelValuesRule FennelValuesRule provides an implementation for ValuesRel in terms of FennelValuesRel.
FennelWindowRel FennelWindowRel is the relational expression which computes windowed aggregates inside of Fennel.
FennelWindowRel.Partition A Partition is a collection of windowed aggregate expressions which belong to the same FennelWindowRel.Window and have the same partitioning keys.
FennelWindowRel.RexWinAggCall A call to a windowed aggregate function.
FennelWindowRel.Window A Window is a range of input rows, defined by an upper and lower bound.
FennelWindowRule FennelWindowRule is a rule for implementing a CalcRel which contains windowed aggregates via a FennelWindowRel.
LhxAggRel LhxAggRel represents hash aggregation.
LhxAggRule LhxAggRule is a rule for transforming AggregateRel to LhxAggRel.
LhxIntersectRule LhxIntersectRule is a rule for transforming IntersectRel to LhxJoinRel.
LhxJoinRel LhxJoinRel implements the hash join.
LhxJoinRule LhxJoinRule implements the planner rule for converting a JoinRel with join condition into a LhxJoinRel (hash join).
LhxMinusRule LhxMinusRule is a rule for transforming MinusRel to LhxJoinRel.
LhxSemiJoinRule LcsSemiJoinRule implements the rule for converting a join (which evaluates a semi join) expression into the a hash semi join.
WindowedAggSplitterRule Rule which slices the CalcRel into sections which contain windowed agg functions and sections which do not.
WindowedAggSplitterRule.WindowedAggRelSplitter Splitter which distinguishes between windowed aggregation expressions (calls to RexOver) and ordinary expressions.
 

Enum Summary
FennelSearchEndpoint FennelSearchEndpoint defines an enumeration corresponding to fennel/common/SearchEndpoint.h.
LhxJoinRelType Enumeration of LucidDB Hash Join types.
 

Exception Summary
CalcRelSplitter.CannotImplement Control exception for CalcRelSplitter.ImplementTester.
 

Package net.sf.farrago.fennel.rel Description

Defines relational expressions and rules for Fennel's physical algebra.

 

Revision $Id: //open/dev/farrago/src/net/sf/farrago/fennel/rel/package.html#1 $
Copyright Copyright (C) 2005-2009 The Eigenbase Project
Copyright (C) 2004-2009 SQLstream, Inc.
Copyright (C) 2009-2009 LucidEra, Inc.
Author Julian Hyde