public interface RelDistribution extends RelMultipleTrait
- Can we shorten
RelDistribution.Type.HASH_DISTRIBUTEDto HASH, etc.
- Do we need
RelDistributionTraitDef.convert(org.apache.calcite.plan.RelOptPlanner, org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelDistribution, boolean)does not create specific physical operators as it does in Drill. Drill will need to create rules; or we could allow "converters" to be registered with the planner that are not trait-defs.
Nested Class Summary
Nested Classes Modifier and Type Interface Description
RelDistribution.TypeType of distribution.
Returns the type of distribution.
Returns the ordinals of the key columns.
Order is important for some types (RANGE); other types (HASH) consider it unimportant but impose an arbitrary order; other types (BROADCAST, SINGLETON) never have keys.
Applies mapping to this distribution trait.
Mapping can change the distribution trait only if it depends on distribution keys.
For example if relation is HASH distributed by keys [0, 1], after applying a mapping (3, 2, 1, 0), the relation will have a distribution HASH(2,3) because distribution keys changed their ordinals.
If mapping eliminates one of the distribution keys, the
RelDistribution.Type.ANYdistribution will be returned.
If distribution doesn't have keys (BROADCAST or SINGLETON), method will return the same distribution.