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.