Package org.apache.calcite.rel.rules
Interface TransformationRule
- All Known Subinterfaces:
SubstitutionRule
- All Known Implementing Classes:
AbstractJoinExtractFilterRule
,AggregateCaseToFilterRule
,AggregateExpandDistinctAggregatesRule
,AggregateExtractProjectRule
,AggregateFilterTransposeRule
,AggregateJoinJoinRemoveRule
,AggregateJoinRemoveRule
,AggregateJoinTransposeRule
,AggregateMergeRule
,AggregateProjectMergeRule
,AggregateProjectPullUpConstantsRule
,AggregateProjectStarTableRule
,AggregateReduceFunctionsRule
,AggregateRemoveRule
,AggregateStarTableRule
,AggregateUnionAggregateRule
,AggregateUnionTransposeRule
,AggregateValuesRule
,CalcMergeRule
,CalcRemoveRule
,CalcSplitRule
,CoerceInputsRule
,DateRangeRules.FilterDateRangeRule
,EnumerableProjectToCalcRule
,ExchangeRemoveConstantKeysRule
,FilterAggregateTransposeRule
,FilterCalcMergeRule
,FilterCorrelateRule
,FilterJoinRule
,FilterJoinRule.FilterIntoJoinRule
,FilterJoinRule.JoinConditionPushRule
,FilterMergeRule
,FilterMultiJoinMergeRule
,FilterProjectTransposeRule
,FilterRemoveIsNotDistinctFromRule
,FilterSampleTransposeRule
,FilterSetOpTransposeRule
,FilterTableFunctionTransposeRule
,FilterToCalcRule
,FilterWindowTransposeRule
,IntersectToDistinctRule
,JoinAddRedundantSemiJoinRule
,JoinAssociateRule
,JoinCommuteRule
,JoinDeriveIsNotNullFilterRule
,JoinExtractFilterRule
,JoinProjectTransposeRule
,JoinPushExpressionsRule
,JoinPushThroughJoinRule
,JoinPushTransitivePredicatesRule
,JoinToCorrelateRule
,JoinToMultiJoinRule
,JoinUnionTransposeRule
,LoptOptimizeJoinRule
,MatchRule
,MaterializedViewFilterScanRule
,MeasureRules.AggregateMeasure2Rule
,MeasureRules.AggregateMeasureRule
,MeasureRules.FilterSortMeasureRule
,MeasureRules.ProjectMeasureRule
,MeasureRules.ProjectSortMeasureRule
,MinusToDistinctRule
,MultiJoinOptimizeBushyRule
,MultiJoinProjectTransposeRule
,ProjectAggregateMergeRule
,ProjectCalcMergeRule
,ProjectCorrelateTransposeRule
,ProjectFilterTransposeRule
,ProjectJoinJoinRemoveRule
,ProjectJoinRemoveRule
,ProjectJoinTransposeRule
,ProjectMergeRule
,ProjectMultiJoinMergeRule
,ProjectOverSumToSum0Rule
,ProjectRemoveRule
,ProjectSetOpTransposeRule
,ProjectToCalcRule
,ProjectToWindowRule
,ProjectToWindowRule.CalcToWindowRule
,ProjectToWindowRule.ProjectToLogicalProjectAndWindowRule
,ProjectWindowTransposeRule
,PruneEmptyRules.PruneEmptyRule
,PruneEmptyRules.RemoveEmptySingleRule
,ReduceDecimalsRule
,ReduceExpressionsRule
,ReduceExpressionsRule.CalcReduceExpressionsRule
,ReduceExpressionsRule.FilterReduceExpressionsRule
,ReduceExpressionsRule.JoinReduceExpressionsRule
,ReduceExpressionsRule.ProjectReduceExpressionsRule
,ReduceExpressionsRule.WindowReduceExpressionsRule
,SampleToFilterRule
,SemiJoinFilterTransposeRule
,SemiJoinJoinTransposeRule
,SemiJoinProjectTransposeRule
,SemiJoinRemoveRule
,SemiJoinRule
,SemiJoinRule.JoinOnUniqueToSemiJoinRule
,SemiJoinRule.JoinToSemiJoinRule
,SemiJoinRule.ProjectToSemiJoinRule
,SingleValuesOptimizationRules.PruneSingleValueRule
,SortJoinCopyRule
,SortJoinTransposeRule
,SortMergeRule
,SortProjectTransposeRule
,SortRemoveConstantKeysRule
,SortRemoveRedundantRule
,SortRemoveRule
,SortUnionTransposeRule
,StreamRules.DeltaAggregateTransposeRule
,StreamRules.DeltaFilterTransposeRule
,StreamRules.DeltaJoinTransposeRule
,StreamRules.DeltaProjectTransposeRule
,StreamRules.DeltaSortTransposeRule
,StreamRules.DeltaTableScanRule
,StreamRules.DeltaTableScanToEmptyRule
,StreamRules.DeltaUnionTransposeRule
,SubQueryRemoveRule
,TableScanRule
,UnionEliminatorRule
,UnionMergeRule
,UnionPullUpConstantsRule
,UnionToDistinctRule
,UnionToValuesRule
,ValuesReduceRule
public interface TransformationRule
Logical transformation rule, only logical operator can be rule operand,
and only generate logical alternatives. It is only visible to
VolcanoPlanner
, HepPlanner
will ignore this interface.
That means, in HepPlanner
, the rule that implements
TransformationRule
can still match with physical operator of
PhysicalNode
and generate physical alternatives.
But in VolcanoPlanner
, TransformationRule
doesn't match
with physical operator that implements PhysicalNode
. It is not
allowed to generate physical operators in TransformationRule
,
unless you are using it in HepPlanner
.
- See Also: