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 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 LogicalPlanRef