org.modeshape.graph.query.optimize
Class PushProjects

java.lang.Object
  extended by org.modeshape.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.


Field Summary
static PushProjects INSTANCE
           
 
Constructor Summary
PushProjects()
           
 
Method Summary
 PlanNode execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)
          Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
protected  Set<SelectorName> getSelectorsFor(List<Column> columns)
           
 String toString()
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INSTANCE

public static final PushProjects INSTANCE
Constructor Detail

PushProjects

public PushProjects()
Method Detail

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 null
plan - the plan to be optimized; never null
ruleStack - the stack of rules that will be run after this rule; never null
Returns:
the optimized plan; never null
See Also:
OptimizerRule.execute(org.modeshape.graph.query.QueryContext, org.modeshape.graph.query.plan.PlanNode, java.util.LinkedList)

getSelectorsFor

protected Set<SelectorName> getSelectorsFor(List<Column> columns)

toString

public String toString()

Overrides:
toString in class Object
See Also:
Object.toString()


Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.