risingwave_frontend::optimizer::plan_node

Trait PredicatePushdown

source
pub trait PredicatePushdown {
    // Required method
    fn predicate_pushdown(
        &self,
        predicate: Condition,
        ctx: &mut PredicatePushdownContext,
    ) -> PlanRef;
}
Expand description

The trait for predicate pushdown, only logical plan node will use it, though all plan node impl it.

Required Methods§

source

fn predicate_pushdown( &self, predicate: Condition, ctx: &mut PredicatePushdownContext, ) -> PlanRef

Push predicate down for every logical plan node.

There are three kinds of predicates:

  1. those can’t be pushed down. We just create a LogicalFilter for them above the current PlanNode. i.e.,

    LogicalFilter::create(self.clone().into(), predicate)
  2. those can be merged with current PlanNode (e.g., LogicalJoin). We just merge the predicates with the Condition of it.

  3. those can be pushed down. We pass them to current PlanNode’s input.

Implementors§

source§

impl PredicatePushdown for BatchDelete

source§

impl PredicatePushdown for BatchExchange

source§

impl PredicatePushdown for BatchExpand

source§

impl PredicatePushdown for BatchFileScan

source§

impl PredicatePushdown for BatchFilter

source§

impl PredicatePushdown for BatchGroupTopN

source§

impl PredicatePushdown for BatchHashAgg

source§

impl PredicatePushdown for BatchHashJoin

source§

impl PredicatePushdown for BatchHopWindow

source§

impl PredicatePushdown for BatchIcebergScan

source§

impl PredicatePushdown for BatchInsert

source§

impl PredicatePushdown for BatchKafkaScan

source§

impl PredicatePushdown for BatchLimit

source§

impl PredicatePushdown for BatchLogSeqScan

source§

impl PredicatePushdown for BatchLookupJoin

source§

impl PredicatePushdown for BatchMaxOneRow

source§

impl PredicatePushdown for BatchMySqlQuery

source§

impl PredicatePushdown for BatchNestedLoopJoin

source§

impl PredicatePushdown for BatchOverWindow

source§

impl PredicatePushdown for BatchPostgresQuery

source§

impl PredicatePushdown for BatchProject

source§

impl PredicatePushdown for BatchProjectSet

source§

impl PredicatePushdown for BatchSeqScan

source§

impl PredicatePushdown for BatchSimpleAgg

source§

impl PredicatePushdown for BatchSort

source§

impl PredicatePushdown for BatchSortAgg

source§

impl PredicatePushdown for BatchSource

source§

impl PredicatePushdown for BatchSysSeqScan

source§

impl PredicatePushdown for BatchTableFunction

source§

impl PredicatePushdown for BatchTopN

source§

impl PredicatePushdown for BatchUnion

source§

impl PredicatePushdown for BatchUpdate

source§

impl PredicatePushdown for BatchValues

source§

impl PredicatePushdown for LogicalAgg

source§

impl PredicatePushdown for LogicalApply

source§

impl PredicatePushdown for LogicalCdcScan

source§

impl PredicatePushdown for LogicalChangeLog

source§

impl PredicatePushdown for LogicalCteRef

source§

impl PredicatePushdown for LogicalDedup

source§

impl PredicatePushdown for LogicalDelete

source§

impl PredicatePushdown for LogicalExcept

source§

impl PredicatePushdown for LogicalExpand

source§

impl PredicatePushdown for LogicalFileScan

source§

impl PredicatePushdown for LogicalFilter

source§

impl PredicatePushdown for LogicalHopWindow

source§

impl PredicatePushdown for LogicalIcebergScan

source§

impl PredicatePushdown for LogicalInsert

source§

impl PredicatePushdown for LogicalIntersect

source§

impl PredicatePushdown for LogicalJoin

source§

impl PredicatePushdown for LogicalKafkaScan

source§

impl PredicatePushdown for LogicalLimit

source§

impl PredicatePushdown for LogicalMaxOneRow

source§

impl PredicatePushdown for LogicalMultiJoin

source§

impl PredicatePushdown for LogicalMySqlQuery

source§

impl PredicatePushdown for LogicalNow

source§

impl PredicatePushdown for LogicalOverWindow

source§

impl PredicatePushdown for LogicalPostgresQuery

source§

impl PredicatePushdown for LogicalProject

source§

impl PredicatePushdown for LogicalProjectSet

source§

impl PredicatePushdown for LogicalRecursiveUnion

source§

impl PredicatePushdown for LogicalScan

source§

impl PredicatePushdown for LogicalShare

source§

impl PredicatePushdown for LogicalSource

source§

impl PredicatePushdown for LogicalSysScan

source§

impl PredicatePushdown for LogicalTableFunction

source§

impl PredicatePushdown for LogicalTopN

source§

impl PredicatePushdown for LogicalUnion

source§

impl PredicatePushdown for LogicalUpdate

source§

impl PredicatePushdown for LogicalValues

source§

impl PredicatePushdown for StreamAsOfJoin

source§

impl PredicatePushdown for StreamCdcTableScan

source§

impl PredicatePushdown for StreamChangeLog

source§

impl PredicatePushdown for StreamDedup

source§

impl PredicatePushdown for StreamDeltaJoin

source§

impl PredicatePushdown for StreamDml

source§

impl PredicatePushdown for StreamDynamicFilter

source§

impl PredicatePushdown for StreamEowcOverWindow

source§

impl PredicatePushdown for StreamExchange

source§

impl PredicatePushdown for StreamExpand

source§

impl PredicatePushdown for StreamFilter

source§

impl PredicatePushdown for StreamFsFetch

source§

impl PredicatePushdown for StreamGlobalApproxPercentile

source§

impl PredicatePushdown for StreamGroupTopN

source§

impl PredicatePushdown for StreamHashAgg

source§

impl PredicatePushdown for StreamHashJoin

source§

impl PredicatePushdown for StreamHopWindow

source§

impl PredicatePushdown for StreamLocalApproxPercentile

source§

impl PredicatePushdown for StreamMaterialize

source§

impl PredicatePushdown for StreamNow

source§

impl PredicatePushdown for StreamOverWindow

source§

impl PredicatePushdown for StreamProject

source§

impl PredicatePushdown for StreamProjectSet

source§

impl PredicatePushdown for StreamRowIdGen

source§

impl PredicatePushdown for StreamRowMerge

source§

impl PredicatePushdown for StreamShare

source§

impl PredicatePushdown for StreamSimpleAgg

source§

impl PredicatePushdown for StreamSink

source§

impl PredicatePushdown for StreamEowcSort

source§

impl PredicatePushdown for StreamSource

source§

impl PredicatePushdown for StreamSourceScan

source§

impl PredicatePushdown for StreamStatelessSimpleAgg

source§

impl PredicatePushdown for StreamTableScan

source§

impl PredicatePushdown for StreamTemporalJoin

source§

impl PredicatePushdown for StreamTopN

source§

impl PredicatePushdown for StreamUnion

source§

impl PredicatePushdown for StreamValues

source§

impl PredicatePushdown for StreamWatermarkFilter

source§

impl PredicatePushdown for PlanRef