Package org.apache.calcite.rel
Class RelDistributionTraitDef
Definition of the distribution trait.
Distribution is a physical property (i.e. a trait) because it can be
changed without loss of information. The converter to do this is the
Exchange
operator.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canConvert
(RelOptPlanner planner, RelDistribution fromTrait, RelDistribution toTrait) Tests whether the given RelTrait can be converted to another RelTrait.@Nullable RelNode
convert
(RelOptPlanner planner, RelNode rel, RelDistribution toDistribution, boolean allowInfiniteCostConverters) Converts the given RelNode to the given RelTrait.Returns the default member of this trait.Returns a simple name for this RelTraitDef (for use inRelNode.explain(org.apache.calcite.rel.RelWriter)
).Returns the specific RelTrait type associated with this RelTraitDef.Methods inherited from class org.apache.calcite.plan.RelTraitDef
canonize, deregisterConverterRule, multiple, registerConverterRule
-
Field Details
-
INSTANCE
-
-
Method Details
-
getTraitClass
Description copied from class:RelTraitDef
Returns the specific RelTrait type associated with this RelTraitDef.- Specified by:
getTraitClass
in classRelTraitDef<RelDistribution>
-
getSimpleName
Description copied from class:RelTraitDef
Returns a simple name for this RelTraitDef (for use inRelNode.explain(org.apache.calcite.rel.RelWriter)
).- Specified by:
getSimpleName
in classRelTraitDef<RelDistribution>
-
getDefault
Description copied from class:RelTraitDef
Returns the default member of this trait.- Specified by:
getDefault
in classRelTraitDef<RelDistribution>
-
convert
public @Nullable RelNode convert(RelOptPlanner planner, RelNode rel, RelDistribution toDistribution, boolean allowInfiniteCostConverters) Description copied from class:RelTraitDef
Converts the given RelNode to the given RelTrait.- Specified by:
convert
in classRelTraitDef<RelDistribution>
- Parameters:
planner
- the planner requesting the conversionrel
- RelNode to converttoDistribution
- RelTrait to convert toallowInfiniteCostConverters
- flag indicating whether infinite cost converters are allowed- Returns:
- a converted RelNode or null if conversion is not possible
-
canConvert
public boolean canConvert(RelOptPlanner planner, RelDistribution fromTrait, RelDistribution toTrait) Description copied from class:RelTraitDef
Tests whether the given RelTrait can be converted to another RelTrait.- Specified by:
canConvert
in classRelTraitDef<RelDistribution>
- Parameters:
planner
- the planner requesting the conversion testfromTrait
- the RelTrait to convert fromtoTrait
- the RelTrait to convert to- Returns:
- true if fromTrait can be converted to toTrait
-