Package org.apache.calcite.rel.metadata
Class RelMdDistribution
- java.lang.Object
-
- org.apache.calcite.rel.metadata.RelMdDistribution
-
- All Implemented Interfaces:
MetadataHandler<BuiltInMetadata.Distribution>
public class RelMdDistribution extends java.lang.Object implements MetadataHandler<BuiltInMetadata.Distribution>
RelMdCollation supplies a default implementation ofRelMetadataQuery.distribution(org.apache.calcite.rel.RelNode)
for the standard logical algebra.
-
-
Field Summary
Fields Modifier and Type Field Description static RelMetadataProvider
SOURCE
-
Constructor Summary
Constructors Modifier Constructor Description private
RelMdDistribution()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RelDistribution
calc(RelMetadataQuery mq, RelNode input, RexProgram program)
Helper method to determine aCalc
's distribution.RelDistribution
distribution(HepRelVertex rel, RelMetadataQuery mq)
RelDistribution
distribution(BiRel rel, RelMetadataQuery mq)
RelDistribution
distribution(Exchange exchange, RelMetadataQuery mq)
RelDistribution
distribution(Project project, RelMetadataQuery mq)
RelDistribution
distribution(SetOp rel, RelMetadataQuery mq)
RelDistribution
distribution(TableScan scan, RelMetadataQuery mq)
RelDistribution
distribution(Values values, RelMetadataQuery mq)
RelDistribution
distribution(RelNode rel, RelMetadataQuery mq)
Fallback method to deduce distribution for any relational expression not handled by a more specific method.RelDistribution
distribution(SingleRel rel, RelMetadataQuery mq)
static RelDistribution
exchange(RelDistribution distribution)
Helper method to determine anExchange
's orSortExchange
's distribution.static RelDistribution
filter(RelMetadataQuery mq, RelNode input)
Helper method to determine aFilter
's distribution.MetadataDef<BuiltInMetadata.Distribution>
getDef()
static RelDistribution
limit(RelMetadataQuery mq, RelNode input)
Helper method to determine a limit's distribution.static RelDistribution
project(RelMetadataQuery mq, RelNode input, java.util.List<? extends RexNode> projects)
Helper method to determine aProject
's collation.static RelDistribution
sort(RelMetadataQuery mq, RelNode input)
Helper method to determine aSort
's distribution.static RelDistribution
table(RelOptTable table)
Helper method to determine aTableScan
's distribution.static RelDistribution
values(RelDataType rowType, com.google.common.collect.ImmutableList<com.google.common.collect.ImmutableList<RexLiteral>> tuples)
Helper method to determine aValues
's distribution.
-
-
-
Field Detail
-
SOURCE
public static final RelMetadataProvider SOURCE
-
-
Method Detail
-
getDef
public MetadataDef<BuiltInMetadata.Distribution> getDef()
- Specified by:
getDef
in interfaceMetadataHandler<BuiltInMetadata.Distribution>
-
distribution
public RelDistribution distribution(RelNode rel, RelMetadataQuery mq)
Fallback method to deduce distribution for any relational expression not handled by a more specific method.- Parameters:
rel
- Relational expression- Returns:
- Relational expression's distribution
-
distribution
public RelDistribution distribution(SingleRel rel, RelMetadataQuery mq)
-
distribution
public RelDistribution distribution(BiRel rel, RelMetadataQuery mq)
-
distribution
public RelDistribution distribution(SetOp rel, RelMetadataQuery mq)
-
distribution
public RelDistribution distribution(TableScan scan, RelMetadataQuery mq)
-
distribution
public RelDistribution distribution(Project project, RelMetadataQuery mq)
-
distribution
public RelDistribution distribution(Values values, RelMetadataQuery mq)
-
distribution
public RelDistribution distribution(Exchange exchange, RelMetadataQuery mq)
-
distribution
public RelDistribution distribution(HepRelVertex rel, RelMetadataQuery mq)
-
table
public static RelDistribution table(RelOptTable table)
Helper method to determine aTableScan
's distribution.
-
sort
public static RelDistribution sort(RelMetadataQuery mq, RelNode input)
Helper method to determine aSort
's distribution.
-
filter
public static RelDistribution filter(RelMetadataQuery mq, RelNode input)
Helper method to determine aFilter
's distribution.
-
limit
public static RelDistribution limit(RelMetadataQuery mq, RelNode input)
Helper method to determine a limit's distribution.
-
calc
public static RelDistribution calc(RelMetadataQuery mq, RelNode input, RexProgram program)
Helper method to determine aCalc
's distribution.
-
project
public static RelDistribution project(RelMetadataQuery mq, RelNode input, java.util.List<? extends RexNode> projects)
Helper method to determine aProject
's collation.
-
values
public static RelDistribution values(RelDataType rowType, com.google.common.collect.ImmutableList<com.google.common.collect.ImmutableList<RexLiteral>> tuples)
Helper method to determine aValues
's distribution.
-
exchange
public static RelDistribution exchange(RelDistribution distribution)
Helper method to determine anExchange
's orSortExchange
's distribution.
-
-