public static class ProjectionPushDownRule.TargetListManager extends Object
$1 is a simple arithmetic operation, and $2 is an aggregation function.
$1 is evaluated in ScanNode because it's just a simple arithmetic operation.
So, the evaluation state of l_orderkey + 1 initially
is false, but the state will be true after ScanNode.
In contrast, sum($1) is evaluated at GroupbyNode. So, its evaluation state is changed
after GroupByNode.
Projectable nodes. Their references become available depending on
the Projectable node at which expressions are evaluated. It manages the expressions and
references for optimized places of expressions. It performs duplicated removal and enables
common expressions to be shared with two or more Projectable nodes. It also helps Projectable
nodes to find correct column references.| Constructor and Description |
|---|
ProjectionPushDownRule.TargetListManager(LogicalPlan plan) |
| Modifier and Type | Method and Description |
|---|---|
String |
add(EvalNode evalNode)
Adds an expression without any name.
|
String |
add(Target target) |
Iterator<Target> |
getFilteredTargets(Set<String> required) |
Collection<String> |
getNames() |
String |
getRealReferenceName(String name)
This method retrieves the name indicating actual expression that an given alias indicate.
|
Target |
getTarget(String name) |
boolean |
isEvaluated(String name) |
boolean |
isNativeAlias(String name)
If some expression is duplicated, we call an alias indicating the duplicated expression 'native alias'.
|
void |
markAsEvaluated(Target target) |
String |
toString() |
public ProjectionPushDownRule.TargetListManager(LogicalPlan plan)
public boolean isNativeAlias(String name)
name - The reference namepublic String getRealReferenceName(String name)
name - an alias namepublic String add(EvalNode evalNode) throws PlanningException
PlanningExceptionpublic Collection<String> getNames()
public String add(Target target) throws PlanningException
PlanningExceptionpublic boolean isEvaluated(String name)
public void markAsEvaluated(Target target)
Copyright © 2015 Apache Software Foundation. All Rights Reserved.