Class CoreRules
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final AggregateProjectPullUpConstantsRuleMore general form ofAGGREGATE_PROJECT_PULL_UP_CONSTANTSthat matches any relational expression.static final AggregateCaseToFilterRuleRule that converts CASE-style filtered aggregates into true filtered aggregates.static final AggregateExpandDistinctAggregatesRuleRule that expands distinct aggregates (such asCOUNT(DISTINCT x)) from aAggregate.static final AggregateExpandDistinctAggregatesRuleAsAGGREGATE_EXPAND_DISTINCT_AGGREGATESbut generates a Join.static final AggregateExpandWithinDistinctRuleRule that rewrites aLogicalAggregatethat containsWITHIN DISTINCTaggregate functions to one that does not.static final AggregateFilterTransposeRulestatic final AggregateJoinJoinRemoveRulestatic final AggregateJoinRemoveRulestatic final AggregateJoinTransposeRulestatic final AggregateJoinTransposeRuleAsAGGREGATE_JOIN_TRANSPOSE, but extended to push down aggregate functions.static final AggregateMergeRulestatic final AggregateMinMaxToLimitRuleRule that transforms an MIN/MAXAggregatefunctions into equivalent subqueries with ORDER BY and LIMIT 1.static final AggregateProjectMergeRulestatic final AggregateProjectPullUpConstantsRuleRule that removes constant keys from anAggregate.static final AggregateProjectStarTableRuleVariant ofAGGREGATE_STAR_TABLEthat accepts aProjectbetween theAggregateand itsStarTable.StarTableScaninput.static final AggregateReduceFunctionsRuleRule that reduces aggregate functions in anAggregateto simpler forms.static final AggregateRemoveRuleRule that removes anAggregateif it computes no aggregate functions (that is, it is implementingSELECT DISTINCT), or all the aggregate functions are splittable, and the underlying relational expression is already distinct.static final AggregateStarTableRuleRule that matches anAggregateon aStarTable.StarTableScan.static final AggregateUnionAggregateRulestatic final AggregateUnionAggregateRulestatic final AggregateUnionAggregateRulestatic final AggregateUnionTransposeRulestatic final AggregateValuesRulestatic final CalcMergeRuleRule that merges aCalconto aCalc.static final ReduceDecimalsRuleRule that reduces operations on the DECIMAL type, such as casts or arithmetic, into operations involving more primitive types such as BIGINT and DOUBLE.static final ReduceExpressionsRule.CalcReduceExpressionsRuleRule that reduces constants inside aLogicalCalc.static final CalcRemoveRuleRule that removes a trivialLogicalCalc.static final CalcSplitRulestatic final ProjectToWindowRule.CalcToWindowRuleRule that transforms aCalcthat contains windowed aggregates to a mixture ofLogicalWindowandCalc.static final CoerceInputsRuleRule that pre-casts inputs to a particular type.static final ExchangeRemoveConstantKeysRuleRule that removes constants inside aLogicalExchange.static final ExpandDisjunctionForTableRuleRule that expands disjunction in the condition of aFilter.static final ExpandDisjunctionForJoinInputsRuleRule that expands disjunction in the condition of aFilterfor join inputs.static final ExpandDisjunctionForTableRuleRule that expands disjunction in the condition of aJoin.static final ExpandDisjunctionForJoinInputsRuleRule that expands disjunction in the condition of aJoinfor join inputs.static final FilterAggregateTransposeRulestatic final FilterCalcMergeRuleRule that merges aFilterand aLogicalCalc.static final FilterCorrelateRulestatic final FilterRemoveIsNotDistinctFromRuleRule that replacesIS NOT DISTINCT FROMin aFilterwith logically equivalent operations.static final FilterTableScanRulestatic final FilterJoinRule.FilterIntoJoinRuleRule that tries to push filter expressions into a join condition and into the inputs of the join.static final FilterJoinRule.FilterIntoJoinRuleDumber version ofFILTER_INTO_JOIN.static final FilterMergeRuleRule that combines twoLogicalFilters.static final FilterMultiJoinMergeRulestatic final FilterProjectTransposeRuleThe default instance ofFilterProjectTransposeRule.static final ReduceExpressionsRule.FilterReduceExpressionsRuleRule that reduces constants inside aLogicalFilter.static final FilterSampleTransposeRulestatic final FilterTableScanRulestatic final FilterSetOpTransposeRulestatic final FilterSortTransposeRulestatic final SubQueryRemoveRuleRule that converts a sub-queries from filter expressions intoCorrelateinstances.static final FilterTableFunctionTransposeRuleRule that pushes aFilterpast aTableFunctionScan.static final FilterToCalcRuleRule that converts aLogicalFilterto aLogicalCalc.static final ValuesReduceRuleRule that merges aFilteronto an underlyingLogicalValues, resulting in aValueswith potentially fewer rows.static final FilterWindowTransposeRulestatic final DphypJoinReorderRuleRule that re-orders aJointree using dphyp algorithm.static final SetOpToFilterRulestatic final UnionMergeRulestatic final UnionEliminatorRuleRule that removes aIntersectif it has only one input.static final IntersectReorderRulePlanner rule that reorders inputs of anIntersectto put smaller inputs first.static final IntersectToDistinctRulestatic final IntersectToExistsRuleRule that translates aIntersectinto aRelOptUtil.Existssubquery.static final IntersectToSemiJoinRulestatic final JoinAddRedundantSemiJoinRuleRule to add a semi-join into aJoin.static final JoinAssociateRuleRule that changes a join based on the associativity rule, ((a JOIN b) JOIN c) → (a JOIN (b JOIN c)).static final JoinCommuteRuleRule that permutes the inputs to an innerJoin.static final JoinCommuteRuleAsJOIN_COMMUTEbut swaps outer joins as well as inner joins.static final JoinConditionExpandIsNotDistinctFromRuleRule that replacesIS NOT DISTINCT FROMin aJoincondition with logically equivalent operations.static final FilterJoinRule.JoinConditionPushRuleRule that pushes predicates in a Join into the inputs to the join.static final JoinDeriveIsNotNullFilterRulestatic final JoinExpandOrToUnionRuleRule that transforms a join with OR conditions into a UNION ALL of multiple joins.static final JoinExtractFilterRulestatic final JoinUnionTransposeRulestatic final SemiJoinRule.JoinOnUniqueToSemiJoinRulestatic final JoinProjectTransposeRuleRule that matches aLogicalJoinwhose inputs areLogicalProjects, and pulls the project expressions up.static final JoinProjectTransposeRuleAsJOIN_PROJECT_BOTH_TRANSPOSEbut match outer as well as inner join.static final JoinProjectTransposeRuleAsJOIN_PROJECT_BOTH_TRANSPOSEbut only the left input is aLogicalProject.static final JoinProjectTransposeRuleAsJOIN_PROJECT_LEFT_TRANSPOSEbut match outer as well as inner join.static final JoinProjectTransposeRuleAsJOIN_PROJECT_BOTH_TRANSPOSEbut only the right input is aLogicalProject.static final JoinProjectTransposeRuleAsJOIN_PROJECT_RIGHT_TRANSPOSEbut match outer as well as inner join.static final JoinPushExpressionsRuleRule that matches aJoinand pushes down expressions on either side of "equal" conditions.static final JoinPushTransitivePredicatesRulestatic final ReduceExpressionsRule.JoinReduceExpressionsRuleRule that reduces constants inside aJoin.static final JoinUnionTransposeRulestatic final SubQueryRemoveRuleRule that converts sub-queries from join expressions intoCorrelateinstances.static final JoinToCorrelateRuleRule that converts aLogicalJoininto aLogicalCorrelate.static final JoinToHyperGraphRuleRule that flattens a tree ofLogicalJoins into a singleHyperGraphwith N inputs.static final JoinToMultiJoinRuleRule that flattens a tree ofLogicalJoins into a singleMultiJoinwith N inputs.static final SemiJoinRule.JoinToSemiJoinRulestatic final SortMergeRulestatic final MatchRuleRule that converts aLogicalMatchto the result of callingLogicalMatch.copy(org.apache.calcite.plan.RelTraitSet, java.util.List<org.apache.calcite.rel.RelNode>).static final SetOpToFilterRulestatic final UnionMergeRulestatic final UnionEliminatorRuleRule that removes aMinusif it has only one input.static final MinusToAntiJoinRulestatic final MinusToDistinctRulestatic final MinusToFilterRuleDeprecated.static final MultiJoinProjectTransposeRuleRule that matches aLogicalJoinwhose inputs are both aMultiJoinwith interveningLogicalProjects, and pulls the Projects up above the Join.static final MultiJoinProjectTransposeRuleAsMULTI_JOIN_BOTH_PROJECTbut only the left input has an intervening Project.static final LoptOptimizeJoinRuleRule that re-orders aJoinusing a heuristic planner.static final MultiJoinOptimizeBushyRuleRule that finds an approximately optimal ordering for join operators using a heuristic algorithm and can handle bushy joins.static final MultiJoinProjectTransposeRuleAsMULTI_JOIN_BOTH_PROJECTbut only the right input has an intervening Project.static final ProjectAggregateMergeRulestatic final ProjectCalcMergeRuleRule that merges aLogicalProjectand aLogicalCalc.static final ProjectCorrelateTransposeRulestatic final ProjectFilterTransposeRulestatic final ProjectFilterTransposeRuleAsPROJECT_FILTER_TRANSPOSE, but pushes down project and filter expressions whole, not field references.static final ProjectFilterTransposeRuleAsPROJECT_FILTER_TRANSPOSE, pushes down field references for filters, but pushes down project expressions whole.static final ValuesReduceRuleRule that merges aProjecton top of aFilteronto an underlyingLogicalValues, resulting in aValueswith different columns and potentially fewer rows.static final ProjectTableScanRuleAsPROJECT_TABLE_SCAN, but with an interveningEnumerableInterpreter.static final ProjectJoinJoinRemoveRulestatic final ProjectJoinRemoveRulestatic final ProjectJoinTransposeRuleRule that pushes aLogicalProjectpast aLogicalJoinby splitting the projection into a projection on top of each child of the join.static final ProjectMergeRulestatic final ProjectMultiJoinMergeRulestatic final ProjectOverSumToSum0RuleRule that converts SUM to SUM0 in OVER clauses in a project list.static final ReduceExpressionsRule.ProjectReduceExpressionsRuleRule that reduces constants inside aLogicalProject.static final ProjectRemoveRuleRule that, given aProjectnode that merely returns its input, converts the node into its input.static final ProjectSetOpTransposeRuleRule that pushes aLogicalProjectpast aSetOp.static final SubQueryRemoveRuleRule that converts sub-queries from project expressions intoCorrelateinstances.static final ProjectTableScanRuleRule that converts aProjecton aTableScanof aProjectableFilterableTableto aBindables.BindableTableScan.static final ProjectToCalcRuleRule that converts aLogicalProjectto aLogicalCalc.static final SemiJoinRule.ProjectToSemiJoinRulestatic final ValuesReduceRuleRule that merges aProjectonto an underlyingLogicalValues, resulting in aValueswith different columns.static final ProjectWindowTransposeRuleRule that pushes aLogicalProjectpast aLogicalWindow.static final SampleToFilterRulestatic final SemiJoinFilterTransposeRulestatic final SemiJoinJoinTransposeRulestatic final SemiJoinProjectTransposeRulestatic final SemiJoinRemoveRuleRule that removes asemi-joinfrom a join tree.static final ExchangeRemoveConstantKeysRuleRule that removes constants inside aLogicalSortExchange.static final SortJoinCopyRulestatic final SortJoinTransposeRulestatic final SortProjectTransposeRulestatic final SortRemoveRuleRule that removes aSortif its input is already sorted.static final SortRemoveConstantKeysRuleRule that removes keys from aSortif those keys are known to be constant, or removes the entire Sort if all keys are constant.static final SortRemoveRedundantRuleRule that removes redundantOrder ByorLimitwhen its input RelNode's max row count is less than or equal to specified row count.All of them are represented bySortstatic final SortUnionTransposeRulestatic final SortUnionTransposeRuleAsSORT_UNION_TRANSPOSE, but for a Union implementation that preserves the ordering of its inputs.static final SetOpToFilterRulestatic final UnionMergeRulestatic final UnionPullUpConstantsRuleRule that pulls up constants through a Union operator.static final UnionEliminatorRuleRule that removes aUnionif it has only one input.static final UnionToDistinctRulestatic final UnionToValuesRulestatic final ReduceExpressionsRule.WindowReduceExpressionsRuleRule that reduces constants inside aLogicalWindow. -
Method Summary
-
Field Details
-
AGGREGATE_PROJECT_MERGE
-
AGGREGATE_PROJECT_PULL_UP_CONSTANTS
Rule that removes constant keys from anAggregate. -
AGGREGATE_ANY_PULL_UP_CONSTANTS
More general form ofAGGREGATE_PROJECT_PULL_UP_CONSTANTSthat matches any relational expression. -
AGGREGATE_STAR_TABLE
Rule that matches anAggregateon aStarTable.StarTableScan. -
AGGREGATE_PROJECT_STAR_TABLE
Variant ofAGGREGATE_STAR_TABLEthat accepts aProjectbetween theAggregateand itsStarTable.StarTableScaninput. -
AGGREGATE_REDUCE_FUNCTIONS
Rule that reduces aggregate functions in anAggregateto simpler forms. -
AGGREGATE_MERGE
-
AGGREGATE_REMOVE
Rule that removes anAggregateif it computes no aggregate functions (that is, it is implementingSELECT DISTINCT), or all the aggregate functions are splittable, and the underlying relational expression is already distinct. -
AGGREGATE_MIN_MAX_TO_LIMIT
Rule that transforms an MIN/MAXAggregatefunctions into equivalent subqueries with ORDER BY and LIMIT 1. -
AGGREGATE_EXPAND_DISTINCT_AGGREGATES
Rule that expands distinct aggregates (such asCOUNT(DISTINCT x)) from aAggregate. This instance operates only on logical expressions. -
AGGREGATE_EXPAND_DISTINCT_AGGREGATES_TO_JOIN
public static final AggregateExpandDistinctAggregatesRule AGGREGATE_EXPAND_DISTINCT_AGGREGATES_TO_JOINAsAGGREGATE_EXPAND_DISTINCT_AGGREGATESbut generates a Join. -
AGGREGATE_EXPAND_WITHIN_DISTINCT
Rule that rewrites aLogicalAggregatethat containsWITHIN DISTINCTaggregate functions to one that does not. -
AGGREGATE_FILTER_TRANSPOSE
-
AGGREGATE_JOIN_JOIN_REMOVE
-
AGGREGATE_JOIN_REMOVE
-
AGGREGATE_JOIN_TRANSPOSE
-
AGGREGATE_JOIN_TRANSPOSE_EXTENDED
AsAGGREGATE_JOIN_TRANSPOSE, but extended to push down aggregate functions. -
AGGREGATE_UNION_TRANSPOSE
-
AGGREGATE_UNION_AGGREGATE
Rule that matches anAggregatewhose input is aUnionone of whose inputs is anAggregate.Because it matches
RelNodefor each input ofUnion, it will create O(N ^ 2) matches, which may cost too much during the popMatch phase in VolcanoPlanner. If efficiency is a concern, we recommend that you useAGGREGATE_UNION_AGGREGATE_FIRSTandAGGREGATE_UNION_AGGREGATE_SECONDinstead. -
AGGREGATE_UNION_AGGREGATE_FIRST
-
AGGREGATE_UNION_AGGREGATE_SECOND
-
AGGREGATE_CASE_TO_FILTER
Rule that converts CASE-style filtered aggregates into true filtered aggregates. -
CALC_MERGE
Rule that merges aCalconto aCalc. -
CALC_REMOVE
Rule that removes a trivialLogicalCalc. -
CALC_REDUCE_DECIMALS
Rule that reduces operations on the DECIMAL type, such as casts or arithmetic, into operations involving more primitive types such as BIGINT and DOUBLE. -
CALC_REDUCE_EXPRESSIONS
Rule that reduces constants inside aLogicalCalc.- See Also:
-
CALC_SPLIT
-
CALC_TO_WINDOW
Rule that transforms aCalcthat contains windowed aggregates to a mixture ofLogicalWindowandCalc. -
COERCE_INPUTS
Rule that pre-casts inputs to a particular type. This can assist operator implementations that impose requirements on their input types. -
EXCHANGE_REMOVE_CONSTANT_KEYS
Rule that removes constants inside aLogicalExchange. -
SORT_EXCHANGE_REMOVE_CONSTANT_KEYS
Rule that removes constants inside aLogicalSortExchange. -
FILTER_INTO_JOIN
Rule that tries to push filter expressions into a join condition and into the inputs of the join. -
FILTER_INTO_JOIN_DUMB
Dumber version ofFILTER_INTO_JOIN. Not intended for production use, but keeps some tests working for whichFILTER_INTO_JOINis too smart. -
FILTER_MERGE
Rule that combines twoLogicalFilters. -
FILTER_CALC_MERGE
Rule that merges aFilterand aLogicalCalc. The result is aLogicalCalcwhose filter condition is the logical AND of the two.- See Also:
-
FILTER_TO_CALC
Rule that converts aLogicalFilterto aLogicalCalc.- See Also:
-
FILTER_AGGREGATE_TRANSPOSE
- See Also:
-
FILTER_PROJECT_TRANSPOSE
The default instance ofFilterProjectTransposeRule.It does not allow a Filter to be pushed past the Project if
there is a correlation conditionanywhere in the Filter, since in some cases it can prevent aCorrelatefrom being de-correlated. -
FILTER_SAMPLE_TRANSPOSE
-
FILTER_TABLE_FUNCTION_TRANSPOSE
Rule that pushes aFilterpast aTableFunctionScan. -
FILTER_SCAN
-
FILTER_SORT_TRANSPOSE
-
FILTER_INTERPRETER_SCAN
-
FILTER_CORRELATE
-
FILTER_MULTI_JOIN_MERGE
- See Also:
-
FILTER_EXPAND_IS_NOT_DISTINCT_FROM
Rule that replacesIS NOT DISTINCT FROMin aFilterwith logically equivalent operations. -
JOIN_CONDITION_EXPAND_IS_NOT_DISTINCT_FROM
public static final JoinConditionExpandIsNotDistinctFromRule JOIN_CONDITION_EXPAND_IS_NOT_DISTINCT_FROMRule that replacesIS NOT DISTINCT FROMin aJoincondition with logically equivalent operations. -
FILTER_SET_OP_TRANSPOSE
-
FILTER_WINDOW_TRANSPOSE
-
FILTER_REDUCE_EXPRESSIONS
Rule that reduces constants inside aLogicalFilter. -
INTERSECT_MERGE
-
INTERSECT_REMOVE
Rule that removes aIntersectif it has only one input.- See Also:
-
INTERSECT_REORDER
Planner rule that reorders inputs of anIntersectto put smaller inputs first. This helps reduce the size of intermediate results. -
INTERSECT_TO_DISTINCT
-
INTERSECT_TO_EXISTS
Rule that translates aIntersectinto aRelOptUtil.Existssubquery. -
INTERSECT_TO_SEMI_JOIN
-
UNION_FILTER_TO_FILTER
-
INTERSECT_FILTER_TO_FILTER
-
MINUS_FILTER_TO_FILTER
-
MINUS_TO_FILTER
Deprecated.Rule that sames asMINUS_FILTER_TO_FILTER, But it is deprecated. -
MINUS_TO_DISTINCT
-
MINUS_TO_ANTI_JOIN
-
MATCH
Rule that converts aLogicalMatchto the result of callingLogicalMatch.copy(org.apache.calcite.plan.RelTraitSet, java.util.List<org.apache.calcite.rel.RelNode>). -
MINUS_MERGE
-
MINUS_REMOVE
Rule that removes aMinusif it has only one input.- See Also:
-
PROJECT_AGGREGATE_MERGE
-
PROJECT_CALC_MERGE
Rule that merges aLogicalProjectand aLogicalCalc.- See Also:
-
PROJECT_CORRELATE_TRANSPOSE
-
PROJECT_FILTER_TRANSPOSE
-
PROJECT_FILTER_TRANSPOSE_WHOLE_EXPRESSIONS
AsPROJECT_FILTER_TRANSPOSE, but pushes down project and filter expressions whole, not field references. -
PROJECT_FILTER_TRANSPOSE_WHOLE_PROJECT_EXPRESSIONS
AsPROJECT_FILTER_TRANSPOSE, pushes down field references for filters, but pushes down project expressions whole. -
PROJECT_REDUCE_EXPRESSIONS
Rule that reduces constants inside aLogicalProject.- See Also:
-
PROJECT_SUB_QUERY_TO_CORRELATE
Rule that converts sub-queries from project expressions intoCorrelateinstances. -
FILTER_SUB_QUERY_TO_CORRELATE
Rule that converts a sub-queries from filter expressions intoCorrelateinstances. -
JOIN_SUB_QUERY_TO_CORRELATE
Rule that converts sub-queries from join expressions intoCorrelateinstances. -
PROJECT_OVER_SUM_TO_SUM0_RULE
Rule that converts SUM to SUM0 in OVER clauses in a project list. -
PROJECT_TO_LOGICAL_PROJECT_AND_WINDOW
public static final ProjectToWindowRule.ProjectToLogicalProjectAndWindowRule PROJECT_TO_LOGICAL_PROJECT_AND_WINDOW -
PROJECT_TO_SEMI_JOIN
- See Also:
-
PROJECT_JOIN_JOIN_REMOVE
-
PROJECT_JOIN_REMOVE
-
PROJECT_JOIN_TRANSPOSE
Rule that pushes aLogicalProjectpast aLogicalJoinby splitting the projection into a projection on top of each child of the join. -
PROJECT_MERGE
-
PROJECT_SET_OP_TRANSPOSE
Rule that pushes aLogicalProjectpast aSetOp.The children of the
SetOpwill project only theRexInputRefs referenced in the originalLogicalProject. -
PROJECT_MULTI_JOIN_MERGE
- See Also:
-
PROJECT_REMOVE
Rule that, given aProjectnode that merely returns its input, converts the node into its input. -
PROJECT_TABLE_SCAN
Rule that converts aProjecton aTableScanof aProjectableFilterableTableto aBindables.BindableTableScan.- See Also:
-
PROJECT_INTERPRETER_TABLE_SCAN
AsPROJECT_TABLE_SCAN, but with an interveningEnumerableInterpreter. -
PROJECT_TO_CALC
Rule that converts aLogicalProjectto aLogicalCalc.- See Also:
-
PROJECT_WINDOW_TRANSPOSE
Rule that pushes aLogicalProjectpast aLogicalWindow. -
JOIN_CONDITION_PUSH
Rule that pushes predicates in a Join into the inputs to the join. -
JOIN_EXPAND_OR_TO_UNION_RULE
Rule that transforms a join with OR conditions into a UNION ALL of multiple joins. -
JOIN_ADD_REDUNDANT_SEMI_JOIN
Rule to add a semi-join into aJoin. -
JOIN_ASSOCIATE
Rule that changes a join based on the associativity rule, ((a JOIN b) JOIN c) → (a JOIN (b JOIN c)). -
JOIN_COMMUTE
Rule that permutes the inputs to an innerJoin. -
JOIN_COMMUTE_OUTER
AsJOIN_COMMUTEbut swaps outer joins as well as inner joins. -
JOIN_EXTRACT_FILTER
-
JOIN_PROJECT_BOTH_TRANSPOSE
Rule that matches aLogicalJoinwhose inputs areLogicalProjects, and pulls the project expressions up. -
JOIN_PROJECT_LEFT_TRANSPOSE
AsJOIN_PROJECT_BOTH_TRANSPOSEbut only the left input is aLogicalProject. -
JOIN_PROJECT_RIGHT_TRANSPOSE
AsJOIN_PROJECT_BOTH_TRANSPOSEbut only the right input is aLogicalProject. -
JOIN_PROJECT_BOTH_TRANSPOSE_INCLUDE_OUTER
AsJOIN_PROJECT_BOTH_TRANSPOSEbut match outer as well as inner join. -
JOIN_PROJECT_LEFT_TRANSPOSE_INCLUDE_OUTER
AsJOIN_PROJECT_LEFT_TRANSPOSEbut match outer as well as inner join. -
JOIN_PROJECT_RIGHT_TRANSPOSE_INCLUDE_OUTER
AsJOIN_PROJECT_RIGHT_TRANSPOSEbut match outer as well as inner join. -
JOIN_PUSH_EXPRESSIONS
Rule that matches aJoinand pushes down expressions on either side of "equal" conditions. -
JOIN_PUSH_TRANSITIVE_PREDICATES
-
JOIN_DERIVE_IS_NOT_NULL_FILTER_RULE
-
JOIN_REDUCE_EXPRESSIONS
Rule that reduces constants inside aJoin. -
JOIN_ON_UNIQUE_TO_SEMI_JOIN
-
JOIN_TO_CORRELATE
Rule that converts aLogicalJoininto aLogicalCorrelate. -
JOIN_TO_MULTI_JOIN
Rule that flattens a tree ofLogicalJoins into a singleMultiJoinwith N inputs. -
JOIN_TO_SEMI_JOIN
- See Also:
-
JOIN_LEFT_UNION_TRANSPOSE
-
JOIN_RIGHT_UNION_TRANSPOSE
-
MULTI_JOIN_OPTIMIZE
Rule that re-orders aJoinusing a heuristic planner.It is triggered by the pattern
LogicalProject(MultiJoin).- See Also:
-
MULTI_JOIN_OPTIMIZE_BUSHY
Rule that finds an approximately optimal ordering for join operators using a heuristic algorithm and can handle bushy joins.It is triggered by the pattern
LogicalProject(MultiJoin).- See Also:
-
MULTI_JOIN_BOTH_PROJECT
Rule that matches aLogicalJoinwhose inputs are both aMultiJoinwith interveningLogicalProjects, and pulls the Projects up above the Join. -
MULTI_JOIN_LEFT_PROJECT
AsMULTI_JOIN_BOTH_PROJECTbut only the left input has an intervening Project. -
MULTI_JOIN_RIGHT_PROJECT
AsMULTI_JOIN_BOTH_PROJECTbut only the right input has an intervening Project. -
SEMI_JOIN_FILTER_TRANSPOSE
-
SEMI_JOIN_PROJECT_TRANSPOSE
-
SEMI_JOIN_JOIN_TRANSPOSE
-
SEMI_JOIN_REMOVE
Rule that removes asemi-joinfrom a join tree. -
SORT_UNION_TRANSPOSE
Rule that pushes aSortpast aUnion.This rule instance is for a Union implementation that does not preserve the ordering of its inputs. Thus, it makes no sense to match this rule if the Sort does not have a limit, i.e.,
Sort.fetchis null.- See Also:
-
SORT_UNION_TRANSPOSE_MATCH_NULL_FETCH
AsSORT_UNION_TRANSPOSE, but for a Union implementation that preserves the ordering of its inputs. It is still worth applying this rule even if the Sort does not have a limit, for the merge of already sorted inputs that the Union can do is usually cheap. -
SORT_JOIN_COPY
Rule that copies aSortpast aJoinwithout its limit and offset. The originalSortis preserved but can potentially be removed bySORT_REMOVEif redundant. -
SORT_REMOVE
Rule that removes aSortif its input is already sorted. -
LIMIT_MERGE
-
SORT_REMOVE_CONSTANT_KEYS
Rule that removes keys from aSortif those keys are known to be constant, or removes the entire Sort if all keys are constant. -
SORT_REMOVE_REDUNDANT
Rule that removes redundantOrder ByorLimitwhen its input RelNode's max row count is less than or equal to specified row count.All of them are represented bySort -
SORT_JOIN_TRANSPOSE
-
SORT_PROJECT_TRANSPOSE
-
UNION_MERGE
-
UNION_REMOVE
Rule that removes aUnionif it has only one input.- See Also:
-
UNION_PULL_UP_CONSTANTS
Rule that pulls up constants through a Union operator. -
UNION_TO_DISTINCT
-
UNION_TO_VALUES
-
SAMPLE_TO_FILTER
-
AGGREGATE_VALUES
-
FILTER_VALUES_MERGE
Rule that merges aFilteronto an underlyingLogicalValues, resulting in aValueswith potentially fewer rows. -
PROJECT_VALUES_MERGE
Rule that merges aProjectonto an underlyingLogicalValues, resulting in aValueswith different columns. -
PROJECT_FILTER_VALUES_MERGE
Rule that merges aProjecton top of aFilteronto an underlyingLogicalValues, resulting in aValueswith different columns and potentially fewer rows. -
WINDOW_REDUCE_EXPRESSIONS
Rule that reduces constants inside aLogicalWindow.- See Also:
-
JOIN_TO_HYPER_GRAPH
Rule that flattens a tree ofLogicalJoins into a singleHyperGraphwith N inputs. -
HYPER_GRAPH_OPTIMIZE
Rule that re-orders aJointree using dphyp algorithm.- See Also:
-
EXPAND_FILTER_DISJUNCTION_GLOBAL
Rule that expands disjunction in the condition of aFilter.- See Also:
-
EXPAND_JOIN_DISJUNCTION_GLOBAL
Rule that expands disjunction in the condition of aJoin.- See Also:
-
EXPAND_FILTER_DISJUNCTION_LOCAL
Rule that expands disjunction in the condition of aFilterfor join inputs.- See Also:
-
EXPAND_JOIN_DISJUNCTION_LOCAL
Rule that expands disjunction in the condition of aJoinfor join inputs.- See Also:
-