public class JoinDataSource extends Object implements DataSource
DataSourceAnalysis, the right-hand side of this datasource
will become a PreJoinableClause object.| Modifier and Type | Method and Description |
|---|---|
static JoinDataSource |
create(DataSource left,
DataSource right,
String rightPrefix,
String condition,
JoinType joinType,
ExprMacroTable macroTable) |
boolean |
equals(Object o) |
List<DataSource> |
getChildren()
Returns datasources that this datasource depends on.
|
String |
getCondition() |
JoinConditionAnalysis |
getConditionAnalysis() |
JoinType |
getJoinType() |
DataSource |
getLeft() |
DataSource |
getRight() |
String |
getRightPrefix() |
Set<String> |
getTableNames()
Returns the names of all table datasources involved in this query.
|
int |
hashCode() |
boolean |
isCacheable()
Returns true if queries on this dataSource are cacheable at both the result level and per-segment level.
|
boolean |
isConcrete()
Returns true if this datasource represents concrete data that can be scanned via a
Segment adapter of some kind. |
boolean |
isGlobal()
Returns true if all servers have a full copy of this datasource.
|
String |
toString() |
DataSource |
withChildren(List<DataSource> children)
Return a new DataSource, identical to this one, with different children.
|
public static JoinDataSource create(DataSource left, DataSource right, String rightPrefix, String condition, JoinType joinType, ExprMacroTable macroTable)
public Set<String> getTableNames()
DataSourcegetTableNames in interface DataSourcepublic DataSource getLeft()
public DataSource getRight()
public String getRightPrefix()
public String getCondition()
public JoinConditionAnalysis getConditionAnalysis()
public JoinType getJoinType()
public List<DataSource> getChildren()
DataSourcegetChildren in interface DataSourcepublic DataSource withChildren(List<DataSource> children)
DataSourcewithChildren in interface DataSourcepublic boolean isCacheable()
DataSourceisCacheable in interface DataSourcepublic boolean isGlobal()
DataSourceJoinableFactory which might build a
Joinable for this datasource directly. If a subquery 'inline' join is
required to join this datasource on the right hand side, then this value must be false for now.
In the future, instead of directly using this method, the query planner and engine should consider
JoinableFactory.isDirectlyJoinable(DataSource) when determining if the
right hand side is directly joinable, which would allow decoupling this property from joins.isGlobal in interface DataSourcepublic boolean isConcrete()
DataSourceSegment adapter of some kind. True for e.g. 'table' but not for 'query' or 'join'.isConcrete in interface DataSourcewhich uses this,
which uses thisCopyright © 2011–2020 The Apache Software Foundation. All rights reserved.