com.metamatrix.query.optimizer.relational
Class AliasGenerator

java.lang.Object
  extended by com.metamatrix.query.sql.LanguageVisitor
      extended by com.metamatrix.query.sql.navigator.AbstractNavigator
          extended by com.metamatrix.query.sql.navigator.PreOrPostOrderNavigator
              extended by com.metamatrix.query.sql.navigator.PreOrderNavigator
                  extended by com.metamatrix.query.optimizer.relational.AliasGenerator

public class AliasGenerator
extends PreOrderNavigator

Adds safe (generated) aliases to the source command The structure is a little convoluted: AliasGenerator - structure navigator, alters the command by adding alias symbols NamingVisitor - changes the output names of Element and Group symbols SQLNamingContext - a hierarchical context for tracking Element and Group names


Field Summary
 
Fields inherited from class com.metamatrix.query.sql.navigator.PreOrPostOrderNavigator
POST_ORDER, PRE_ORDER
 
Constructor Summary
AliasGenerator(boolean aliasGroups)
           
 
Method Summary
 void visit(ExistsCriteria obj)
           
 void visit(OrderBy obj)
           
 void visit(Query obj)
          visit the query in definition order
 void visit(Reference obj)
           
 void visit(ScalarSubquery obj)
           
 void visit(Select obj)
           
 void visit(SetQuery obj)
          visit the branches other than the first with individual naming contexts Aliases are being added in all cases, even though they may only be needed in the order by case.
 void visit(SubqueryCompareCriteria obj)
           
 void visit(SubqueryFromClause obj)
           
 void visit(SubquerySetCriteria obj)
           
 void visit(UnaryFromClause obj)
           
 
Methods inherited from class com.metamatrix.query.sql.navigator.PreOrderNavigator
doVisit
 
Methods inherited from class com.metamatrix.query.sql.navigator.PreOrPostOrderNavigator
doVisit, postVisitVisitor, preVisitVisitor, 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 com.metamatrix.query.sql.navigator.AbstractNavigator
getVisitor, visitNode, visitNodes, visitVisitor
 
Methods inherited from class com.metamatrix.query.sql.LanguageVisitor
setAbort, shouldAbort, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AliasGenerator

public AliasGenerator(boolean aliasGroups)
Method Detail

visit

public void visit(SetQuery obj)
visit the branches other than the first with individual naming contexts Aliases are being added in all cases, even though they may only be needed in the order by case. Adding the same alias to all branches ensures cross db support (db2 in particular)

Overrides:
visit in class PreOrPostOrderNavigator

visit

public void visit(Select obj)
Overrides:
visit in class PreOrPostOrderNavigator

visit

public void visit(Query obj)
visit the query in definition order

Overrides:
visit in class PreOrPostOrderNavigator

visit

public void visit(SubqueryFromClause obj)
Overrides:
visit in class PreOrPostOrderNavigator

visit

public void visit(UnaryFromClause obj)
Overrides:
visit in class PreOrPostOrderNavigator

visit

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

visit

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

visit

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

visit

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

visit

public void visit(OrderBy obj)
Overrides:
visit in class PreOrPostOrderNavigator

visit

public void visit(Reference obj)
Overrides:
visit in class PreOrPostOrderNavigator


Copyright © 2009. All Rights Reserved.