Package org.apache.calcite.rel.core
Enum JoinRelType
- All Implemented Interfaces:
Serializable
,Comparable<JoinRelType>
,Constable
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
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns 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
generatesNullsOn
(int i) 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
swap()
Swaps left to right, and vice versa.static JoinRelType
Returns the enum constant of this type with the specified name.static JoinRelType[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
INNER
Inner join. -
LEFT
Left-outer join. -
RIGHT
Right-outer join. -
FULL
Full-outer join. -
SEMI
Semi-join.For example,
EMP semi-join DEPT
finds allEMP
records that have a correspondingDEPT
record:SELECT * FROM EMP WHERE EXISTS (SELECT 1 FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO)
-
ANTI
Anti-join (also known as Anti-semi-join).For example,
EMP anti-join DEPT
finds allEMP
records that do not have a correspondingDEPT
record:SELECT * FROM EMP WHERE NOT EXISTS (SELECT 1 FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO)
-
-
Field Details
-
lowerName
Lower-case name.
-
-
Method Details
-
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
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 nameNullPointerException
- 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
Swaps left to right, and vice versa. -
generatesNullsOn
public boolean generatesNullsOn(int i) Returns whether this join type generates nulls on side #i
. -
cancelNullsOnLeft
Returns a join type similar to this but that does not generate nulls on the left. -
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.
-