Package org.eigenbase.rel.rules

Defines relational expressions.

See:
          Description

Interface Summary
PushProjector.ExprCondition A functor that replies true or false for a given expression.
 

Class Summary
AddRedundantSemiJoinRule Rule to add a semijoin into a joinrel.
CoerceInputsRule CoerceInputsRule precasts inputs to a particular type.
CombineUnionsRule CombineUnionsRule implements the rule for combining two non-distinct UnionRels into a single UnionRel.
ConvertMultiJoinRule Rule to flatten a tree of JoinRels into a single MultiJoinRel with N inputs.
ExtractJoinFilterRule Rule to convert an inner join to a filter on top of a cartesian inner join.
FilterToCalcRule Planner rule which converts a FilterRel to a CalcRel.
MergeCalcRule Planner rule which merges a CalcRel onto a CalcRel.
MergeFilterOntoCalcRule Planner rule which merges a FilterRel and a CalcRel.
MergeFilterRule MergeFilterRule implements the rule for combining two FilterRels
MergeProjectOntoCalcRule Planner rule which merges a ProjectRel and a CalcRel.
MergeProjectRule MergeProjectRule merges a ProjectRel into another ProjectRel, provided the projects aren't projecting identical sets of input references.
MultiJoinRel A MultiJoinRel represents a join of N inputs, whereas other join relnodes represent strictly binary joins.
NestedLoopsJoinRule Rule which converts a JoinRel into a CorrelatorRel, which can then be implemented using nested loops.
ProjectToCalcRule Rule to convert a ProjectRel to a CalcRel
PullConstantsThroughAggregatesRule PullConstantsThroughAggregatesRule removes constant expressions from the group list of an AggregateRel.
PullUpAggregateAboveUnionRule PullUpAggregateAboveUnionRule implements the rule for pulling AggregateRels beneath a UnionRel so two AggregateRels that are used to remove duplicates can be combined into a single AggregateRel.
PullUpProjectsAboveJoinRule PullUpProjectsAboveJoinRule implements the rule for pulling ProjectRels beneath a JoinRel above the JoinRel.
PullUpProjectsOnTopOfMultiJoinRule PullUpProjectsOnTopOfMultiJoinRule implements the rule for pulling ProjectRels that are on top of a MultiJoinRel and beneath a JoinRel so the ProjectRel appears above the JoinRel.
PushAggregateThroughUnionRule PushAggregateThroughUnionRule implements the rule for pushing an AggregateRel past a non-distinct UnionRel.
PushFilterIntoMultiJoinRule PushFilterIntoMultiJoinRule implements the rule for pushing a FilterRel into a MultiJoinRel.
PushFilterPastJoinRule PushFilterPastJoinRule implements the rule for pushing filters above and within a join node into the join node and/or its children nodes.
PushFilterPastProjectRule PushFilterPastProjectRule implements the rule for pushing a FilterRel past a ProjectRel.
PushFilterPastSetOpRule PushFilterPastSetOpRule implements the rule for pushing a FilterRel past a SetOpRel.
PushProjectIntoMultiJoinRule PushProjectIntoMultiJoinRule implements the rule for pushing projection information from a ProjectRel into the MultiJoinRel that is input into the ProjectRel.
PushProjector PushProjector is a utility class used to perform operations used in push projection rules.
PushProjector.OperatorExprCondition An expression condition that evaluates to true if the expression is a call to one of a set of operators.
PushProjectPastFilterRule PushProjectPastFilterRule implements the rule for pushing a projection past a filter.
PushProjectPastJoinRule PushProjectPastJoinRule implements the rule for pushing a projection past a join by splitting the projection into a projection on top of each child of the join.
PushProjectPastSetOpRule PushProjectPastSetOpRule implements the rule for pushing a ProjectRel past a SetOpRel.
PushSemiJoinPastFilterRule PushSemiJoinPastFilterRule implements the rule for pushing semijoins down in a tree past a filter in order to trigger other rules that will convert semijoins.
PushSemiJoinPastJoinRule PushSemiJoinPastJoinRule implements the rule for pushing semijoins down in a tree past a join in order to trigger other rules that will convert semijoins.
PushSemiJoinPastProjectRule PushSemiJoinPastProjectRule implements the rule for pushing semijoins down in a tree past a project in order to trigger other rules that will convert semijoins.
ReduceAggregatesRule Rule to reduce aggregates to simpler forms.
ReduceDecimalsRule ReduceDecimalsRule is a rule which reduces decimal operations (such as casts or arithmetic) into operations involving more primitive types (such as longs and doubles).
RemoveDistinctAggregateRule Rule to remove distinct aggregates from a AggregateRel.
RemoveDistinctRule Rule to remove an AggregateRel implementing DISTINCT if the underlying relational expression is already distinct.
RemoveEmptyRule Collection of rules which remove sections of a query plan known never to produce any rows.
RemoveIsNotDistinctFromRule Rule to replace isNotDistinctFromOperator with logical equivalent conditions in a FilterRel.
RemoveSemiJoinRule RemoveSemiJoinRule implements the rule that removes semijoins from a join tree if it turns out it's not possible to convert a SemiJoinRel to an indexed scan on a join factor.
RemoveTrivialCalcRule Rule which removes a trivial CalcRel.
RemoveTrivialProjectRule Rule which, given a ProjectRel node which merely returns its input, converts the node into its child.
SemiJoinRel A SemiJoinRel represents two relational expressions joined according to some condition, where the output only contains the columns from the left join input.
SwapJoinRule SwapJoinRule permutes the inputs to a join.
SwapJoinRule.VariableReplacer Walks over an expression, replacing references to fields of the left and right inputs.
TableAccessRule TableAccessRule converts a TableAccessRel to the result of calling RelOptTable.toRel(org.eigenbase.relopt.RelOptCluster, org.eigenbase.relopt.RelOptConnection).
UnionEliminatorRule UnionEliminatorRule checks to see if its possible to optimize a Union call by eliminating the Union operator altogether in the case the call consists of only one input.
UnionToDistinctRule UnionToDistinctRule translates a distinct UnionRel (all = false) into an AggregateRel on top of a non-distinct UnionRel (all = true).
 

Package org.eigenbase.rel.rules Description

Defines relational expressions.

 

Revision $Id: //open/dev/farrago/src/org/eigenbase/rel/rules/package.html#4 $
Copyright Copyright (C) 2005-2009 The Eigenbase Project
Copyright (C) 2003-2009 SQLstream, Inc.
Copyright (C) 2005-2009 LucidEra, Inc.
Author Julian Hyde

Related packages and classes