@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.
...
|
SOURCE1
This 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)
OptimizerRuleexecute in interface OptimizerRulecontext - 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.