org.modeshape.jcr.query.optimize
Class PushProjects
java.lang.Object
org.modeshape.jcr.query.optimize.PushProjects
- All Implemented Interfaces:
- OptimizerRule
public class PushProjects
- extends Object
- implements OptimizerRule
This rule attempts to ensure the proper location of PlanNode.Type.PROJECT
nodes. For example, every PlanNode.Type.ACCESS
node
needs to have a PROJECT node below it and above any other nodes (e.g., PlanNode.Type.SELECT
or PlanNode.Type.SOURCE
nodes). This
rule ensures that the PROJECT exists, but it also attempts to reduce any unnecessary columns in existing PROJECT nodes.
INSTANCE
public static final PushProjects INSTANCE
PushProjects
public PushProjects()
execute
public PlanNode execute(QueryContext context,
PlanNode plan,
LinkedList<OptimizerRule> ruleStack)
- Description copied from interface:
OptimizerRule
- Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
- Specified by:
execute
in interface OptimizerRule
- Parameters:
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 null
- Returns:
- the optimized plan; never null
getSelectorsFor
protected Set<SelectorName> getSelectorsFor(List<Column> columns)
toString
public String toString()
- Overrides:
toString
in class Object
Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.