com.metamatrix.query.sql.visitor
Class EvaluatableVisitor

java.lang.Object
  extended by com.metamatrix.query.sql.LanguageVisitor
      extended by com.metamatrix.query.sql.visitor.EvaluatableVisitor

public class EvaluatableVisitor
extends LanguageVisitor

This visitor class will traverse a language object tree, and determine if the current expression can be evaluated


Nested Class Summary
static class EvaluatableVisitor.EvaluationLevel
           
 
Constructor Summary
EvaluatableVisitor()
           
 
Method Summary
static boolean isEvaluatable(LanguageObject obj, EvaluatableVisitor.EvaluationLevel target)
           
static boolean isFullyEvaluatable(LanguageObject obj, boolean duringPlanning)
          Should be called to check if the object can fully evaluated
static boolean needsProcessingEvaluation(LanguageObject obj)
           
 void visit(AggregateSymbol obj)
           
 void visit(Constant obj)
           
 void visit(DependentSetCriteria obj)
           
 void visit(ElementSymbol obj)
           
 void visit(ExistsCriteria obj)
           
 void visit(ExpressionSymbol obj)
           
 void visit(Function obj)
           
 void visit(Reference obj)
          We assume the non-push down for correlation variables, then make specific checks when correlated variables are allowed.
 void visit(ScalarSubquery obj)
           
 void visit(StoredProcedure proc)
           
 void visit(SubqueryCompareCriteria obj)
           
 void visit(SubquerySetCriteria obj)
           
static boolean willBecomeConstant(LanguageObject obj)
          Will return true if the expression can be deterministically evaluated at runtime, but it may not be evaluatable during planning
static boolean willBecomeConstant(LanguageObject obj, boolean pushdown)
           
 
Methods inherited from class com.metamatrix.query.sql.LanguageVisitor
setAbort, shouldAbort, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EvaluatableVisitor

public EvaluatableVisitor()
Method Detail

visit

public void visit(Function obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(Constant obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(ElementSymbol obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(ExpressionSymbol obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(AggregateSymbol obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(Reference obj)
We assume the non-push down for correlation variables, then make specific checks when correlated variables are allowed.

Overrides:
visit in class LanguageVisitor

visit

public void visit(StoredProcedure proc)
Overrides:
visit in class LanguageVisitor

visit

public void visit(ScalarSubquery obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(DependentSetCriteria obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(ExistsCriteria obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(SubquerySetCriteria obj)
Overrides:
visit in class LanguageVisitor

visit

public void visit(SubqueryCompareCriteria obj)
Overrides:
visit in class LanguageVisitor

willBecomeConstant

public static final boolean willBecomeConstant(LanguageObject obj)
Will return true if the expression can be deterministically evaluated at runtime, but it may not be evaluatable during planning


isFullyEvaluatable

public static final boolean isFullyEvaluatable(LanguageObject obj,
                                               boolean duringPlanning)
Should be called to check if the object can fully evaluated


isEvaluatable

public static final boolean isEvaluatable(LanguageObject obj,
                                          EvaluatableVisitor.EvaluationLevel target)

willBecomeConstant

public static final boolean willBecomeConstant(LanguageObject obj,
                                               boolean pushdown)

needsProcessingEvaluation

public static final boolean needsProcessingEvaluation(LanguageObject obj)


Copyright © 2009. All Rights Reserved.