

PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 
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 nondistinct UnionRel s into a single UnionRel . 
ConvertMultiJoinRule  Rule to flatten a tree of JoinRel s 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 FilterRel s 
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 AggregateRel s beneath a UnionRel so two AggregateRel s that
are used to remove duplicates can be combined into a single AggregateRel . 
PullUpProjectsAboveJoinRule  PullUpProjectsAboveJoinRule implements the rule for pulling ProjectRel s beneath a JoinRel above the JoinRel . 
PullUpProjectsOnTopOfMultiJoinRule  PullUpProjectsOnTopOfMultiJoinRule implements the rule for pulling ProjectRel s 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 nondistinct 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 nondistinct UnionRel (all = true ). 
Defines relational expressions.
Revision  $Id: //open/dev/farrago/src/org/eigenbase/rel/rules/package.html#4 $ 

Copyright  Copyright (C) 20052009 The Eigenbase Project
Copyright (C) 20032009 SQLstream, Inc. Copyright (C) 20052009 LucidEra, Inc. 
Author  Julian Hyde 
org.eigenbase.sql
is an object model for SQL expressions org.eigenbase.rex
is an object model for relational row expressions org.eigenbase.relopt
provides an
optimizer interface.


PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 