@Immutable public class ReplaceViews extends Object implements OptimizerRule
optimizer rule
that replaces any SOURCE nodes that happen to be views
. This rewriting
changes all of the elements of the plan that reference the SOURCE and it's columns, including criteria, project nodes, etc.
For example, here is the portion of a plan that uses a single SOURCE that is defined to use a view.
... | SOURCE1This same SOURCE node is then replaced with the view's definition:
... | PROJECT with the list of columns being SELECTed | SELECT1 | One or more SELECT plan nodes that each have SELECT2 a single non-join constraint that are then all AND-ed | together SELECTn | SOURCE
Modifier and Type | Field and Description |
---|---|
static ReplaceViews |
INSTANCE |
Constructor and Description |
---|
ReplaceViews() |
Modifier and Type | Method and Description |
---|---|
PlanNode |
execute(QueryContext context,
PlanNode plan,
LinkedList<OptimizerRule> ruleStack)
Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
|
String |
toString() |
public static final ReplaceViews INSTANCE
public PlanNode execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)
OptimizerRule
execute
in interface OptimizerRule
context
- the context in which the query is being optimized; never nullplan
- the plan to be optimized; never nullruleStack
- the stack of rules that will be run after this rule; never nullCopyright © 2008–2016 JBoss, a division of Red Hat. All rights reserved.