Package org.apache.calcite.plan
Enum RelOptUtil.Logic
- All Implemented Interfaces:
Serializable
,Comparable<RelOptUtil.Logic>
,Constable
- Enclosing class:
RelOptUtil
Policies for handling two- and three-valued boolean logic.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantDescriptionAn anti-semi-join will have been applied, so that only rows for which the value is FALSE will have been returned.A semi-join will have been applied, so that only rows for which the value is TRUE will have been returned.Nulls are not possible.Three-valued boolean logic.Two-valued logic where UNKNOWN is treated as FALSE.Two-valued logic where UNKNOWN is treated as TRUE. -
Method Summary
Modifier and TypeMethodDescriptionnegate()
negate2()
Variant ofnegate()
to be used withinLogicVisitor
, where FALSE values may exist.static RelOptUtil.Logic
Returns the enum constant of this type with the specified name.static RelOptUtil.Logic[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
TRUE_FALSE_UNKNOWN
Three-valued boolean logic. -
TRUE_FALSE
Nulls are not possible. -
UNKNOWN_AS_FALSE
Two-valued logic where UNKNOWN is treated as FALSE."x IS TRUE" produces the same result, and "WHERE x", "JOIN ... ON x" and "HAVING x" have the same effect.
-
UNKNOWN_AS_TRUE
Two-valued logic where UNKNOWN is treated as TRUE."x IS FALSE" produces the same result, as does "WHERE NOT x", etc.
In particular, this is the mode used by "WHERE k NOT IN q". If "k IN q" produces TRUE or UNKNOWN, "NOT k IN q" produces FALSE or UNKNOWN and the row is eliminated; if "k IN q" it returns FALSE, the row is retained by the WHERE clause.
-
TRUE
A semi-join will have been applied, so that only rows for which the value is TRUE will have been returned. -
FALSE
An anti-semi-join will have been applied, so that only rows for which the value is FALSE will have been returned.Currently only used within
LogicVisitor
, to ensure that 'NOT (NOT EXISTS (q))' behaves the same as 'EXISTS (q)')
-
-
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
-
negate
-
negate2
Variant ofnegate()
to be used withinLogicVisitor
, where FALSE values may exist.
-