public class MapJoinableFactory extends Object implements JoinableFactory
JoinableFactory that delegates to the appropriate factory based on the datasource.
Any number of JoinableFactory may be associated to the same class of DataSource, but for a specific
datasource only a single JoinableFactory should be able to create a Joinable in the build(org.apache.druid.query.DataSource, org.apache.druid.segment.join.JoinConditionAnalysis)
method.| Constructor and Description |
|---|
MapJoinableFactory(Set<JoinableFactory> factories,
Map<Class<? extends JoinableFactory>,Class<? extends DataSource>> factoryToDataSource) |
| Modifier and Type | Method and Description |
|---|---|
Optional<Joinable> |
build(DataSource dataSource,
JoinConditionAnalysis condition)
Create a Joinable object.
|
Optional<byte[]> |
computeJoinCacheKey(DataSource dataSource,
JoinConditionAnalysis condition)
Compute the cache key for a data source participating in join operation.
|
boolean |
isDirectlyJoinable(DataSource dataSource)
Returns true if a
Joinable **may** be created for a given DataSource, but is not a guarantee that
JoinableFactory.build(org.apache.druid.query.DataSource, org.apache.druid.segment.join.JoinConditionAnalysis) will return a non-empty result. |
@Inject public MapJoinableFactory(Set<JoinableFactory> factories, Map<Class<? extends JoinableFactory>,Class<? extends DataSource>> factoryToDataSource)
public boolean isDirectlyJoinable(DataSource dataSource)
JoinableFactoryJoinable **may** be created for a given DataSource, but is not a guarantee that
JoinableFactory.build(org.apache.druid.query.DataSource, org.apache.druid.segment.join.JoinConditionAnalysis) will return a non-empty result. Successfully building a Joinable might require specific
criteria of the JoinConditionAnalysis.isDirectlyJoinable in interface JoinableFactorypublic Optional<Joinable> build(DataSource dataSource, JoinConditionAnalysis condition)
JoinableFactorybuild in interface JoinableFactorydataSource - the datasource to join oncondition - the condition to join onpublic Optional<byte[]> computeJoinCacheKey(DataSource dataSource, JoinConditionAnalysis condition)
JoinableFactoryJoinableFactory.build(DataSource, JoinConditionAnalysis)}
which can be an expensive operation and can potentially be avoided if cached results can be used.computeJoinCacheKey in interface JoinableFactorydataSource - the datasource to join oncondition - the condition to join onCopyright © 2011–2021 The Apache Software Foundation. All rights reserved.