Enum DeriveMode

java.lang.Object
java.lang.Enum<DeriveMode>
org.apache.calcite.plan.DeriveMode
All Implemented Interfaces:
Serializable, Comparable<DeriveMode>, java.lang.constant.Constable

public enum DeriveMode
extends Enum<DeriveMode>
The mode of trait derivation.
  • Enum Constant Details

    • LEFT_FIRST

      public static final DeriveMode LEFT_FIRST
      Uses the left most child's traits to decide what traits to require from the other children. This generally applies to most operators.
    • RIGHT_FIRST

      public static final DeriveMode RIGHT_FIRST
      Uses the right most child's traits to decide what traits to require from the other children. Operators like index nested loop join may find this useful.
    • BOTH

      public static final DeriveMode BOTH
      Iterates over each child, uses current child's traits to decide what traits to require from the other children. It includes both LEFT_FIRST and RIGHT_FIRST. System that doesn't enable join commutativity should consider this option. Special customized operators like a Join who has 3 inputs may find this useful too.
    • OMAKASE

      public static final DeriveMode OMAKASE
      Leave it to you, you decide what you cook. This will allow planner to pass all the traits from all the children, the user decides how to make use of these traits and whether to derive new rel nodes.
    • PROHIBITED

      public static final DeriveMode PROHIBITED
      Trait derivation is prohibited.
  • Method Details

    • values

      public static DeriveMode[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static DeriveMode valueOf​(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null