public class SQLServer_OuterJoin extends OuterJoin
Special implementation of OuterJoin for MS SQL Server.
Important:
Instances of this class are created only by SQLServer_ADQLQueryFactory.
This implementation just changes the behavior the getDBColumns().
In MS SQL Server, there is no keyword NATURAL and USING. That's why the DBColumns
returned by DBColumn can not contain any DBCommonColumn. Instead,
the DBColumn of the first joined table (i.e. the left one) is returned.
Since this special behavior is also valid for InnerJoin, a special implementation
of this class has been also created: SQLServer_InnerJoin. Both must have exactly the
same behavior when getDBColumns() is called. That's why the static function
SQLServer_InnerJoin.getDBColumns(ADQLJoin) has been created.
SQLServer_ADQLQueryFactory,
SQLServer_InnerJoinOuterJoin.OuterTypecondition, lstColumns, natural| Constructor and Description |
|---|
SQLServer_OuterJoin(FromContent left,
FromContent right,
OuterJoin.OuterType type)
Builds a NATURAL OUTER join between the two given "tables".
|
SQLServer_OuterJoin(FromContent left,
FromContent right,
OuterJoin.OuterType type,
ClauseConstraints condition)
Builds an OUTER join between the two given "tables" with the given condition.
|
SQLServer_OuterJoin(FromContent left,
FromContent right,
OuterJoin.OuterType type,
java.util.Collection<ADQLColumn> lstColumns)
Builds an OUTER join between the two given "tables" with a list of columns to join.
|
SQLServer_OuterJoin(OuterJoin toCopy)
Builds a copy of the given OUTER join.
|
| Modifier and Type | Method and Description |
|---|---|
SearchColumnList |
getDBColumns()
Gets the list of all columns (~ database metadata) available in this FROM part.
|
getCopy, getJoinType, getType, setTypeaddAllExcept, adqlIterator, findAtMostOneColumn, findExactlyOneColumn, getJoinCondition, getJoinedColumns, getLeftTable, getName, getPosition, getRightTable, getTables, getTablesByAlias, hasJoinedColumns, isCommonColumn, isNatural, setJoinCondition, setJoinedColumns, setLeftTable, setNatural, setPosition, setRightTable, toADQLpublic SQLServer_OuterJoin(FromContent left, FromContent right, OuterJoin.OuterType type)
left - Left "table".right - Right "table".type - OUTER join type (left, right or full).OuterJoin.OuterJoin(FromContent, FromContent, OuterType)public SQLServer_OuterJoin(FromContent left, FromContent right, OuterJoin.OuterType type, ClauseConstraints condition)
left - Left "table".right - Right "table".type - Outer join type (left, right or full).condition - Join condition.OuterJoin.OuterJoin(FromContent, FromContent, OuterType, ClauseConstraints)public SQLServer_OuterJoin(FromContent left, FromContent right, OuterJoin.OuterType type, java.util.Collection<ADQLColumn> lstColumns)
left - Left "table".right - Right "table".type - Outer join type.lstColumns - List of columns to join.OuterJoin.OuterJoin(FromContent, FromContent, OuterType, Collection)public SQLServer_OuterJoin(OuterJoin toCopy) throws java.lang.Exception
toCopy - The OUTER join to copy.java.lang.Exception - If there is an error during the copy.OuterJoin.OuterJoin(OuterJoin)public SearchColumnList getDBColumns() throws UnresolvedJoinException
FromContentGets the list of all columns (~ database metadata) available in this FROM part.
Note: In the most cases, this list is generated on the fly !
getDBColumns in interface FromContentgetDBColumns in class ADQLJoinDBColumns.UnresolvedJoinException - If a join is not possible.