risingwave_frontend::optimizer::plan_node::col_pruning

Trait ColPrunable

source
pub trait ColPrunable {
    // Required method
    fn prune_col(
        &self,
        required_cols: &[usize],
        ctx: &mut ColumnPruningContext,
    ) -> PlanRef;
}
Expand description

The trait for column pruning, only logical plan node will use it, though all plan node impl it.

Required Methods§

source

fn prune_col( &self, required_cols: &[usize], ctx: &mut ColumnPruningContext, ) -> PlanRef

Transform the plan node to only output the required columns ordered by index number.

required_cols must be a subset of the range 0..self.schema().len().

After calling prune_col on the children, their output schema may change, so the caller may need to transform its InputRef using ColIndexMapping.

When implementing this method for a node, it may require its children to produce additional columns besides required_cols. In this case, it may need to insert a LogicalProject above to have a correct schema.

Implementors§

source§

impl ColPrunable for BatchDelete

source§

impl ColPrunable for BatchExchange

source§

impl ColPrunable for BatchExpand

source§

impl ColPrunable for BatchFileScan

source§

impl ColPrunable for BatchFilter

source§

impl ColPrunable for BatchGroupTopN

source§

impl ColPrunable for BatchHashAgg

source§

impl ColPrunable for BatchHashJoin

source§

impl ColPrunable for BatchHopWindow

source§

impl ColPrunable for BatchIcebergScan

source§

impl ColPrunable for BatchInsert

source§

impl ColPrunable for BatchKafkaScan

source§

impl ColPrunable for BatchLimit

source§

impl ColPrunable for BatchLogSeqScan

source§

impl ColPrunable for BatchLookupJoin

source§

impl ColPrunable for BatchMaxOneRow

source§

impl ColPrunable for BatchMySqlQuery

source§

impl ColPrunable for BatchNestedLoopJoin

source§

impl ColPrunable for BatchOverWindow

source§

impl ColPrunable for BatchPostgresQuery

source§

impl ColPrunable for BatchProject

source§

impl ColPrunable for BatchProjectSet

source§

impl ColPrunable for BatchSeqScan

source§

impl ColPrunable for BatchSimpleAgg

source§

impl ColPrunable for BatchSort

source§

impl ColPrunable for BatchSortAgg

source§

impl ColPrunable for BatchSource

source§

impl ColPrunable for BatchSysSeqScan

source§

impl ColPrunable for BatchTableFunction

source§

impl ColPrunable for BatchTopN

source§

impl ColPrunable for BatchUnion

source§

impl ColPrunable for BatchUpdate

source§

impl ColPrunable for BatchValues

source§

impl ColPrunable for LogicalAgg

source§

impl ColPrunable for LogicalApply

source§

impl ColPrunable for LogicalCdcScan

source§

impl ColPrunable for LogicalChangeLog

source§

impl ColPrunable for LogicalCteRef

source§

impl ColPrunable for LogicalDedup

source§

impl ColPrunable for LogicalDelete

source§

impl ColPrunable for LogicalExcept

source§

impl ColPrunable for LogicalExpand

source§

impl ColPrunable for LogicalFileScan

source§

impl ColPrunable for LogicalFilter

source§

impl ColPrunable for LogicalHopWindow

source§

impl ColPrunable for LogicalIcebergScan

source§

impl ColPrunable for LogicalInsert

source§

impl ColPrunable for LogicalIntersect

source§

impl ColPrunable for LogicalJoin

source§

impl ColPrunable for LogicalKafkaScan

source§

impl ColPrunable for LogicalLimit

source§

impl ColPrunable for LogicalMaxOneRow

source§

impl ColPrunable for LogicalMultiJoin

source§

impl ColPrunable for LogicalMySqlQuery

source§

impl ColPrunable for LogicalNow

The trait for column pruning, only logical plan node will use it, though all plan node impl it.

source§

impl ColPrunable for LogicalOverWindow

source§

impl ColPrunable for LogicalPostgresQuery

source§

impl ColPrunable for LogicalProject

source§

impl ColPrunable for LogicalProjectSet

source§

impl ColPrunable for LogicalRecursiveUnion

source§

impl ColPrunable for LogicalScan

source§

impl ColPrunable for LogicalShare

source§

impl ColPrunable for LogicalSource

source§

impl ColPrunable for LogicalSysScan

source§

impl ColPrunable for LogicalTableFunction

source§

impl ColPrunable for LogicalTopN

source§

impl ColPrunable for LogicalUnion

source§

impl ColPrunable for LogicalUpdate

source§

impl ColPrunable for LogicalValues

source§

impl ColPrunable for StreamAsOfJoin

source§

impl ColPrunable for StreamCdcTableScan

source§

impl ColPrunable for StreamChangeLog

source§

impl ColPrunable for StreamDedup

source§

impl ColPrunable for StreamDeltaJoin

source§

impl ColPrunable for StreamDml

source§

impl ColPrunable for StreamDynamicFilter

source§

impl ColPrunable for StreamEowcOverWindow

source§

impl ColPrunable for StreamExchange

source§

impl ColPrunable for StreamExpand

source§

impl ColPrunable for StreamFilter

source§

impl ColPrunable for StreamFsFetch

source§

impl ColPrunable for StreamGlobalApproxPercentile

source§

impl ColPrunable for StreamGroupTopN

source§

impl ColPrunable for StreamHashAgg

source§

impl ColPrunable for StreamHashJoin

source§

impl ColPrunable for StreamHopWindow

source§

impl ColPrunable for StreamLocalApproxPercentile

source§

impl ColPrunable for StreamMaterialize

source§

impl ColPrunable for StreamNow

source§

impl ColPrunable for StreamOverWindow

source§

impl ColPrunable for StreamProject

source§

impl ColPrunable for StreamProjectSet

source§

impl ColPrunable for StreamRowIdGen

source§

impl ColPrunable for StreamRowMerge

source§

impl ColPrunable for StreamShare

source§

impl ColPrunable for StreamSimpleAgg

source§

impl ColPrunable for StreamSink

source§

impl ColPrunable for StreamEowcSort

source§

impl ColPrunable for StreamSource

source§

impl ColPrunable for StreamSourceScan

source§

impl ColPrunable for StreamStatelessSimpleAgg

source§

impl ColPrunable for StreamTableScan

source§

impl ColPrunable for StreamTemporalJoin

source§

impl ColPrunable for StreamTopN

source§

impl ColPrunable for StreamUnion

source§

impl ColPrunable for StreamValues

source§

impl ColPrunable for StreamWatermarkFilter

source§

impl ColPrunable for PlanRef