risingwave_frontend::optimizer::rule

Trait InfallibleRule

source
trait InfallibleRule:
    Send
    + Sync
    + Description {
    // Required method
    fn apply(&self, plan: PlanRef) -> Option<PlanRef>;
}
Expand description

An one-to-one transform for the PlanNode.

It’s a convenient trait to implement FallibleRule, thus made available only within this module.

Required Methods§

source

fn apply(&self, plan: PlanRef) -> Option<PlanRef>

Apply the rule to the plan node.

  • Returns Some if the apply is successful.
  • Returns None if it’s not applicable. The optimizer may try other rules.

Implementors§

source§

impl InfallibleRule for AggCallMergeRule

source§

impl InfallibleRule for AggGroupBySimplifyRule

source§

impl InfallibleRule for AggProjectMergeRule

source§

impl InfallibleRule for AlwaysFalseFilterRule

source§

impl InfallibleRule for ApplyAggTransposeRule

source§

impl InfallibleRule for ApplyDedupTransposeRule

source§

impl InfallibleRule for ApplyEliminateRule

source§

impl InfallibleRule for ApplyExpandTransposeRule

source§

impl InfallibleRule for ApplyFilterTransposeRule

source§

impl InfallibleRule for ApplyHopWindowTransposeRule

source§

impl InfallibleRule for ApplyJoinTransposeRule

source§

impl InfallibleRule for ApplyLimitTransposeRule

source§

impl InfallibleRule for ApplyOverWindowTransposeRule

source§

impl InfallibleRule for ApplyProjectSetTransposeRule

source§

impl InfallibleRule for ApplyProjectTransposeRule

source§

impl InfallibleRule for ApplyShareEliminateRule

source§

impl InfallibleRule for ApplyToJoinRule

source§

impl InfallibleRule for ApplyTopNTransposeRule

source§

impl InfallibleRule for ApplyUnionTransposeRule

source§

impl InfallibleRule for BatchIcebergPredicatePushDownRule

source§

impl InfallibleRule for BatchProjectMergeRule

source§

impl InfallibleRule for BatchPushLimitToScanRule

source§

impl InfallibleRule for CommonSubExprExtractRule

source§

impl InfallibleRule for CrossJoinEliminateRule

source§

impl InfallibleRule for DagToTreeRule

source§

impl InfallibleRule for DistinctAggRule

source§

impl InfallibleRule for ExceptMergeRule

source§

impl InfallibleRule for ExceptToAntiJoinRule

source§

impl InfallibleRule for ExpandToProjectRule

source§

impl InfallibleRule for GroupingSetsToExpandRule

source§

impl InfallibleRule for IndexDeltaJoinRule

source§

impl InfallibleRule for IndexSelectionRule

source§

impl InfallibleRule for IntersectMergeRule

source§

impl InfallibleRule for IntersectToSemiJoinRule

source§

impl InfallibleRule for JoinCommuteRule

source§

impl InfallibleRule for JoinProjectTransposeRule

source§

impl InfallibleRule for LeftDeepTreeJoinOrderingRule

source§

impl InfallibleRule for LimitPushDownRule

source§

impl InfallibleRule for LogicalFilterExpressionSimplifyRule

source§

impl InfallibleRule for MaxOneRowEliminateRule

source§

impl InfallibleRule for MergeMultiJoinRule

source§

impl InfallibleRule for MinMaxOnIndexRule

source§

impl InfallibleRule for OverWindowMergeRule

source§

impl InfallibleRule for OverWindowSplitRule

source§

impl InfallibleRule for OverWindowToAggAndJoinRule

source§

impl InfallibleRule for OverWindowToTopNRule

source§

impl InfallibleRule for ProjectEliminateRule

source§

impl InfallibleRule for ProjectJoinMergeRule

source§

impl InfallibleRule for ProjectJoinSeparateRule

source§

impl InfallibleRule for ProjectMergeRule

source§

impl InfallibleRule for PullUpCorrelatedPredicateAggRule

source§

impl InfallibleRule for PullUpCorrelatedPredicateRule

source§

impl InfallibleRule for PullUpHopRule

source§

impl InfallibleRule for PushCalculationOfJoinRule

source§

impl InfallibleRule for RewriteLikeExprRule

source§

impl InfallibleRule for SourceToIcebergScanRule

source§

impl InfallibleRule for SourceToKafkaScanRule

source§

impl InfallibleRule for BushyTreeJoinOrderingRule

source§

impl InfallibleRule for FilterWithNowToJoinRule

source§

impl InfallibleRule for GenerateSeriesWithNowRule

source§

impl InfallibleRule for SplitNowAndRule

source§

impl InfallibleRule for SplitNowOrRule

source§

impl InfallibleRule for StreamProjectMergeRule

source§

impl InfallibleRule for TableFunctionToFileScanRule

source§

impl InfallibleRule for TableFunctionToMySqlQueryRule

source§

impl InfallibleRule for TableFunctionToPostgresQueryRule

source§

impl InfallibleRule for TableFunctionToProjectSetRule

source§

impl InfallibleRule for TopNOnIndexRule

source§

impl InfallibleRule for TranslateApplyRule

source§

impl InfallibleRule for TrivialProjectToValuesRule

source§

impl InfallibleRule for UnionInputValuesMergeRule

source§

impl InfallibleRule for UnionMergeRule

source§

impl InfallibleRule for UnionToDistinctRule

source§

impl InfallibleRule for ValuesExtractProjectRule