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.
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    Anti-join (also known as Anti-semi-join).
    An ASOF JOIN operation combines rows from two tables based on comparable timestamp values.
    Full-outer join.
    Inner join.
    Left-outer join.
    The left version of an ASOF join, where each row from the left table is part of the output.
    Right-outer join.
    Semi-join.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final String
    Lower-case name.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns a join type similar to this but that does not generate nulls on the left.
    Returns a join type similar to this but that does not generate nulls on the right.
    boolean
    Returns whether this join type accepts pushing predicates from above into its predicate.
    boolean
    Returns whether this join type accepts pushing predicates from above into its left input.
    boolean
    Returns whether this join type accepts pushing predicates from within into its left input.
    boolean
    Returns whether this join type accepts pushing predicates from above into its right input.
    boolean
    Returns whether this join type accepts pushing predicates from within into its right input.
    boolean
    Returns whether this join type generates nulls on side #i.
    boolean
    Returns whether a join of this type may generate NULL values on the left-hand side.
    boolean
    Returns whether a join of this type may generate NULL values on the right-hand side.
    boolean
    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.
    boolean
     
    Swaps left to right, and vice versa.
    Returns the enum constant of this type with the specified name.
    static JoinRelType[]
    Returns an array containing the constants of this enum type, in the order they are declared.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • 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)
    • ASOF

      public static final JoinRelType ASOF
      An ASOF JOIN operation combines rows from two tables based on comparable timestamp values. For each row in the left table, the join finds at most one row in the right table that has the "closest" timestamp value. The matched row on the right side is the closest match, which could less than or equal or greater than or equal in the timestamp column, as specified by the comparison operator.

      Example:

       FROM left_table ASOF JOIN right_table
         MATCH_CONDITION ( left_table.timecol ≤ right_table.timecol )
         ON left_table.col = right_table.col
    • LEFT_ASOF

      public static final JoinRelType LEFT_ASOF
      The left version of an ASOF join, where each row from the left table is part of the output.
  • 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.