com.metamatrix.query.optimizer.relational
Class AliasGenerator
java.lang.Object
com.metamatrix.query.sql.LanguageVisitor
com.metamatrix.query.sql.navigator.AbstractNavigator
com.metamatrix.query.sql.navigator.PreOrPostOrderNavigator
com.metamatrix.query.sql.navigator.PreOrderNavigator
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
| 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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AliasGenerator
public AliasGenerator(boolean aliasGroups)
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.