Class AliasGenerator
- java.lang.Object
-
- org.teiid.query.sql.LanguageVisitor
-
- org.teiid.query.sql.navigator.AbstractNavigator
-
- org.teiid.query.sql.navigator.PreOrPostOrderNavigator
-
- org.teiid.query.sql.navigator.PreOrderNavigator
-
- org.teiid.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 org.teiid.query.sql.navigator.PreOrPostOrderNavigator
POST_ORDER, PRE_ORDER
-
-
Constructor Summary
Constructors Constructor Description AliasGenerator(boolean aliasGroups)
AliasGenerator(boolean aliasGroups, boolean stripColumnAliases)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
setAliasMapping(Map<String,String> aliasMapping)
void
setCorrelationGroups(Collection<String> correlationGroups)
void
visit(ExistsCriteria obj)
void
visit(OrderBy obj)
void
visit(Query obj)
visit the query in definition ordervoid
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(StoredProcedure obj)
void
visit(SubqueryCompareCriteria obj)
void
visit(SubqueryFromClause obj)
void
visit(SubquerySetCriteria obj)
void
visit(UnaryFromClause obj)
void
visit(WithQueryCommand obj)
void
visit(Reference obj)
void
visit(ScalarSubquery obj)
-
Methods inherited from class org.teiid.query.sql.navigator.PreOrderNavigator
doVisit
-
Methods inherited from class org.teiid.query.sql.navigator.PreOrPostOrderNavigator
doVisit, doVisit, postVisitVisitor, preVisitVisitor, setSkipEvaluatable, 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, 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 org.teiid.query.sql.navigator.AbstractNavigator
getVisitor, visitNode, visitNodes, visitVisitor
-
Methods inherited from class org.teiid.query.sql.LanguageVisitor
setAbort, shouldAbort, visit, visit
-
-
-
-
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 classPreOrPostOrderNavigator
-
visit
public void visit(Select obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(StoredProcedure obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(Query obj)
visit the query in definition order- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(SubqueryFromClause obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(UnaryFromClause obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(ScalarSubquery obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(SubqueryCompareCriteria obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(SubquerySetCriteria obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(ExistsCriteria obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(WithQueryCommand obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(OrderBy obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
visit
public void visit(Reference obj)
- Overrides:
visit
in classPreOrPostOrderNavigator
-
setCorrelationGroups
public void setCorrelationGroups(Collection<String> correlationGroups)
-
-