Class PruneTableFunctionProcessorColumns
java.lang.Object
io.trino.sql.planner.iterative.rule.ProjectOffPushDownRule<TableFunctionProcessorNode>
io.trino.sql.planner.iterative.rule.PruneTableFunctionProcessorColumns
- All Implemented Interfaces:
Rule<ProjectNode>
public class PruneTableFunctionProcessorColumns
extends ProjectOffPushDownRule<TableFunctionProcessorNode>
TableFunctionProcessorNode has two kinds of outputs:
- proper outputs, which are the columns produced by the table function,
- pass-through outputs, which are the columns copied from table arguments.
This rule filters out unreferenced pass-through symbols.
Unreferenced proper symbols are not pruned, because there is currently no way
to communicate to the table function the request for not producing certain columns.
// TODO prune table function's proper outputs
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.trino.sql.planner.iterative.Rule
Rule.Context, Rule.Result -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionpushDownProjectOff(Rule.Context context, TableFunctionProcessorNode node, Set<Symbol> referencedOutputs) Methods inherited from class io.trino.sql.planner.iterative.rule.ProjectOffPushDownRule
apply, getPattern
-
Constructor Details
-
PruneTableFunctionProcessorColumns
public PruneTableFunctionProcessorColumns()
-
-
Method Details
-
pushDownProjectOff
protected Optional<PlanNode> pushDownProjectOff(Rule.Context context, TableFunctionProcessorNode node, Set<Symbol> referencedOutputs) - Specified by:
pushDownProjectOffin classProjectOffPushDownRule<TableFunctionProcessorNode>
-