public static final class SelectScope.UsingMerge extends Object
JOIN ... USING merge in this scope: the names it merged, the relations that took
part, in JOIN ORDER, and the join type.
SQL exposes a merged column ONCE, so an unqualified reference to it is not ambiguous across the sides that merged it. All three fields are needed to say that safely:
SELECT c FROM a JOIN b USING(c), d has three
candidates and only two of them merged;
| Constructor and Description |
|---|
UsingMerge(EJoinType joinType) |
| Modifier and Type | Method and Description |
|---|---|
void |
addColumnName(String name) |
void |
addParticipant(TTable table)
Participants are added LEFT side first, right side last, and the order is meaningful.
|
EJoinType |
getJoinType() |
List<TTable> |
getParticipants() |
boolean |
hasParticipant(TTable table) |
boolean |
merges(EDbVendor vendor,
String columnName)
Identifiers fold by the vendor's rules, so never compared with equals.
|
boolean |
merges(IdentifierService names,
String columnName)
merges(gudusoft.gsqlparser.EDbVendor, String) under one analysis's identifier rules. |
public UsingMerge(EJoinType joinType)
public void addColumnName(String name)
public void addParticipant(TTable table)
public boolean merges(EDbVendor vendor, String columnName)
public boolean merges(IdentifierService names, String columnName)
merges(gudusoft.gsqlparser.EDbVendor, String) under one analysis's identifier rules.public boolean hasParticipant(TTable table)
public List<TTable> getParticipants()
public EJoinType getJoinType()