public class JaninoRelMetadataProvider extends Object implements RelMetadataProvider
RelMetadataProvider interface that generates
a class that dispatches to the underlying providers.| Modifier and Type | Class and Description |
|---|---|
static class |
JaninoRelMetadataProvider.NoHandler
Exception that indicates there there should be a handler for
this class but there is not.
|
| Modifier and Type | Field and Description |
|---|---|
static JaninoRelMetadataProvider |
DEFAULT |
| Modifier and Type | Method and Description |
|---|---|
<M extends Metadata> |
apply(Class<? extends RelNode> relClass,
Class<? extends M> metadataClass)
Retrieves metadata of a particular type and for a particular sub-class
of relational expression.
|
boolean |
equals(Object obj) |
<M extends Metadata> |
handlers(MetadataDef<M> def) |
int |
hashCode() |
static JaninoRelMetadataProvider |
of(RelMetadataProvider provider)
Creates a JaninoRelMetadataProvider.
|
void |
register(Iterable<Class<? extends RelNode>> classes)
Registers some classes.
|
public static final JaninoRelMetadataProvider DEFAULT
public static JaninoRelMetadataProvider of(RelMetadataProvider provider)
provider - Underlying providerpublic <M extends Metadata> UnboundMetadata<M> apply(Class<? extends RelNode> relClass, Class<? extends M> metadataClass)
RelMetadataProviderThe object returned is a function. It can be applied to a relational expression of the given type to create a metadata object.
For example, you might call
RelMetadataProvider provider; LogicalFilter filter; RexNode predicate; Function<RelNode, Metadata> function = provider.apply(LogicalFilter.class, Selectivity.class}; Selectivity selectivity = function.apply(filter); Double d = selectivity.selectivity(predicate);
apply in interface RelMetadataProviderrelClass - Type of relational expressionmetadataClass - Type of metadatapublic <M extends Metadata> com.google.common.collect.Multimap<Method,MetadataHandler<M>> handlers(MetadataDef<M> def)
handlers in interface RelMetadataProviderCopyright © 2012-2020 Apache Software Foundation. All Rights Reserved.