public class MetadataFactoryImpl extends Object implements MetadataFactory
MetadataFactory that gets providers from a
RelMetadataProvider and stores them in a cache.
The cache does not store metadata. It remembers which providers can provide which kinds of metadata, for which kinds of relational expressions.
| Modifier and Type | Field and Description |
|---|---|
private com.google.common.cache.LoadingCache<Pair<Class<RelNode>,Class<Metadata>>,UnboundMetadata<Metadata>> |
cache |
static UnboundMetadata<Metadata> |
DUMMY |
| Constructor and Description |
|---|
MetadataFactoryImpl(RelMetadataProvider provider) |
| Modifier and Type | Method and Description |
|---|---|
private static com.google.common.cache.CacheLoader<Pair<Class<RelNode>,Class<Metadata>>,UnboundMetadata<Metadata>> |
loader(RelMetadataProvider provider) |
<M extends Metadata> |
query(RelNode rel,
RelMetadataQuery mq,
Class<M> metadataClazz)
Returns a metadata interface to get a particular kind of metadata
from a particular relational expression.
|
public static final UnboundMetadata<Metadata> DUMMY
public MetadataFactoryImpl(RelMetadataProvider provider)
private static com.google.common.cache.CacheLoader<Pair<Class<RelNode>,Class<Metadata>>,UnboundMetadata<Metadata>> loader(RelMetadataProvider provider)
public <M extends Metadata> M query(RelNode rel, RelMetadataQuery mq, Class<M> metadataClazz)
MetadataFactoryquery in interface MetadataFactoryM - Metadata typerel - Relational expressionmq - Metadata querymetadataClazz - Metadata classrel and queryCopyright © 2012–2018 The Apache Software Foundation. All rights reserved.