Interface SubstitutionRule

All Superinterfaces:
TransformationRule
All Known Implementing Classes:
AggregateRemoveRule, AggregateValuesRule, CalcRemoveRule, ExchangeRemoveConstantKeysRule, FilterMergeRule, ProjectJoinJoinRemoveRule, ProjectJoinRemoveRule, ProjectRemoveRule, PruneEmptyRules.PruneEmptyRule, PruneEmptyRules.RemoveEmptySingleRule, ReduceExpressionsRule, ReduceExpressionsRule.CalcReduceExpressionsRule, ReduceExpressionsRule.FilterReduceExpressionsRule, ReduceExpressionsRule.JoinReduceExpressionsRule, ReduceExpressionsRule.ProjectReduceExpressionsRule, ReduceExpressionsRule.WindowReduceExpressionsRule, SingleValuesOptimizationRules.PruneSingleValueRule, SortRemoveConstantKeysRule, UnionEliminatorRule

public interface SubstitutionRule extends TransformationRule
A rule that implements this interface indicates that the new RelNode is typically better than the old one. All the substitution rules will be executed first until they are done. The execution order of substitution rules depends on the match order.
  • Method Summary

    Modifier and Type
    Method
    Description
    default boolean
    Whether the planner should automatically prune old node when there is at least 1 equivalent rel generated by the rule.
  • Method Details

    • autoPruneOld

      default boolean autoPruneOld()
      Whether the planner should automatically prune old node when there is at least 1 equivalent rel generated by the rule.

      Default is false, the user needs to prune the old node manually in the rule.