org.jboss.dna.graph.query.optimize
Class PushProjects
java.lang.Object
org.jboss.dna.graph.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)
- 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
- See Also:
OptimizerRule.execute(org.jboss.dna.graph.query.QueryContext,
org.jboss.dna.graph.query.plan.PlanNode, java.util.LinkedList)
toString
public String toString()
-
- Overrides:
toString in class Object
- See Also:
Object.toString()
Copyright © 2008-2010 JBoss, a division of Red Hat. All Rights Reserved.