Enum JoinRelType

java.lang.Object
java.lang.Enum<JoinRelType>
org.apache.calcite.rel.core.JoinRelType
All Implemented Interfaces:
Serializable, Comparable<JoinRelType>, Constable

public enum JoinRelType extends Enum<JoinRelType>
Enumeration of join types.
  • Enum Constant Details

    • INNER

      public static final JoinRelType INNER
      Inner join.
    • LEFT

      public static final JoinRelType LEFT
      Left-outer join.
    • FULL

      public static final JoinRelType FULL
      Full-outer join.
    • SEMI

      public static final JoinRelType SEMI
      Semi-join.

      For example, EMP semi-join DEPT finds all EMP records that have a corresponding DEPT record:

       SELECT * FROM EMP
       WHERE EXISTS (SELECT 1 FROM DEPT
           WHERE DEPT.DEPTNO = EMP.DEPTNO)
    • ANTI

      public static final JoinRelType ANTI
      Anti-join (also known as Anti-semi-join).

      For example, EMP anti-join DEPT finds all EMP records that do not have a corresponding DEPT record:

       SELECT * FROM EMP
       WHERE NOT EXISTS (SELECT 1 FROM DEPT
           WHERE DEPT.DEPTNO = EMP.DEPTNO)
  • Field Details

    • lowerName

      public final String lowerName
      Lower-case name.
  • Method Details

    • values

      public static JoinRelType[] 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 JoinRelType 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
    • generatesNullsOnRight

      public boolean generatesNullsOnRight()
      Returns whether a join of this type may generate NULL values on the right-hand side.
    • generatesNullsOnLeft

      public boolean generatesNullsOnLeft()
      Returns whether a join of this type may generate NULL values on the left-hand side.
    • isOuterJoin

      public boolean isOuterJoin()
      Returns whether a join of this type is an outer join, returns true if the join type may generate NULL values, either on the left-hand side or right-hand side.
    • swap

      public JoinRelType swap()
      Swaps left to right, and vice versa.
    • generatesNullsOn

      public boolean generatesNullsOn(int i)
      Returns whether this join type generates nulls on side #i.
    • cancelNullsOnLeft

      public JoinRelType cancelNullsOnLeft()
      Returns a join type similar to this but that does not generate nulls on the left.
    • cancelNullsOnRight

      public JoinRelType cancelNullsOnRight()
      Returns a join type similar to this but that does not generate nulls on the right.
    • projectsRight

      public boolean projectsRight()
    • canPushIntoFromAbove

      @API(since="1.28", status=EXPERIMENTAL) public boolean canPushIntoFromAbove()
      Returns whether this join type accepts pushing predicates from above into its predicate.
    • canPushLeftFromAbove

      @API(since="1.28", status=EXPERIMENTAL) public boolean canPushLeftFromAbove()
      Returns whether this join type accepts pushing predicates from above into its left input.
    • canPushRightFromAbove

      @API(since="1.28", status=EXPERIMENTAL) public boolean canPushRightFromAbove()
      Returns whether this join type accepts pushing predicates from above into its right input.
    • canPushLeftFromWithin

      @API(since="1.28", status=EXPERIMENTAL) public boolean canPushLeftFromWithin()
      Returns whether this join type accepts pushing predicates from within into its left input.
    • canPushRightFromWithin

      @API(since="1.28", status=EXPERIMENTAL) public boolean canPushRightFromWithin()
      Returns whether this join type accepts pushing predicates from within into its right input.