Class ProjectOffPushDownRule<N extends PlanNode>

java.lang.Object
io.trino.sql.planner.iterative.rule.ProjectOffPushDownRule<N>
Type Parameters:
N - The node type to look for under the ProjectNode Looks for a Project parent over a N child, such that the parent doesn't use all the output columns of the child. Given that situation, invokes the pushDownProjectOff helper to possibly rewrite the child to produce fewer outputs.
All Implemented Interfaces:
Rule<ProjectNode>
Direct Known Subclasses:
PruneAggregationColumns, PruneApplyColumns, PruneAssignUniqueIdColumns, PruneCorrelatedJoinColumns, PruneEnforceSingleRowColumns, PruneExchangeColumns, PruneFilterColumns, PruneGroupIdColumns, PruneIndexJoinColumns, PruneIndexSourceColumns, PruneJoinColumns, PruneLimitColumns, PruneMarkDistinctColumns, PruneOffsetColumns, PrunePattenRecognitionColumns, PruneProjectColumns, PruneRowNumberColumns, PruneSampleColumns, PruneSemiJoinColumns, PruneSortColumns, PruneSpatialJoinColumns, PruneTableFunctionProcessorColumns, PruneTableScanColumns, PruneTopNColumns, PruneTopNRankingColumns, PruneUnionColumns, PruneUnnestColumns, PruneValuesColumns, PruneWindowColumns

public abstract class ProjectOffPushDownRule<N extends PlanNode> extends Object implements Rule<ProjectNode>