Enum HepMatchOrder

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

public enum HepMatchOrder extends Enum<HepMatchOrder>
HepMatchOrder specifies the order of graph traversal when looking for rule matches.
  • Enum Constant Details

    • ARBITRARY

      public static final HepMatchOrder ARBITRARY
      Match in arbitrary order. This is the default because it is efficient, and most rules don't care about order.
    • BOTTOM_UP

      public static final HepMatchOrder BOTTOM_UP
      Match from leaves up. A match attempt at a descendant precedes all match attempts at its ancestors.
    • TOP_DOWN

      public static final HepMatchOrder TOP_DOWN
      Match from root down. A match attempt at an ancestor always precedes all match attempts at its descendants.
    • DEPTH_FIRST

      public static final HepMatchOrder DEPTH_FIRST
      Match in depth-first order.

      It avoids applying a rule to the previous RelNode repeatedly after new vertex is generated in one rule application. It can therefore be more efficient than ARBITRARY in cases such as Union with large fan-out.

  • Method Details

    • values

      public static HepMatchOrder[] 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 HepMatchOrder 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