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
Fields -
Method Summary
Modifier and TypeMethodDescriptionbooleancanConvert(RelOptPlanner planner, RelDistribution fromTrait, RelDistribution toTrait) Tests whether the given RelTrait can be converted to another RelTrait.@Nullable RelNodeconvert(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:RelTraitDefReturns the specific RelTrait type associated with this RelTraitDef.- Specified by:
getTraitClassin classRelTraitDef<RelDistribution>
-
getSimpleName
Description copied from class:RelTraitDefReturns a simple name for this RelTraitDef (for use inRelNode.explain(org.apache.calcite.rel.RelWriter)).- Specified by:
getSimpleNamein classRelTraitDef<RelDistribution>
-
getDefault
Description copied from class:RelTraitDefReturns the default member of this trait.- Specified by:
getDefaultin classRelTraitDef<RelDistribution>
-
convert
public @Nullable RelNode convert(RelOptPlanner planner, RelNode rel, RelDistribution toDistribution, boolean allowInfiniteCostConverters) Description copied from class:RelTraitDefConverts the given RelNode to the given RelTrait.- Specified by:
convertin 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:RelTraitDefTests whether the given RelTrait can be converted to another RelTrait.- Specified by:
canConvertin 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
-