Interface RelDistribution

All Superinterfaces:
Comparable<RelMultipleTrait>, RelMultipleTrait, RelTrait

public interface RelDistribution
extends RelMultipleTrait
Description of the physical distribution of a relational expression.

TBD:

  • Method Details

    • getType

      Returns the type of distribution.
    • getKeys

      @Nonnull List<Integer> getKeys()
      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.

    • apply

      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.ANY distribution will be returned.

      If distribution doesn't have keys (BROADCAST or SINGLETON), method will return the same distribution.

      Specified by:
      apply in interface RelTrait
      Parameters:
      mapping - Mapping
      Returns:
      distribution with mapping applied