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 DBColumn
s
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_InnerJoin
OuterJoin.OuterType
condition, 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, setType
addAllExcept, adqlIterator, findAtMostOneColumn, findExactlyOneColumn, getJoinCondition, getJoinedColumns, getLeftTable, getName, getPosition, getRightTable, getTables, getTablesByAlias, hasJoinedColumns, isCommonColumn, isNatural, setJoinCondition, setJoinedColumns, setLeftTable, setNatural, setPosition, setRightTable, toADQL
public 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
FromContent
Gets 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 FromContent
getDBColumns
in class ADQLJoin
DBColumn
s.UnresolvedJoinException
- If a join is not possible.