public enum JoinSourceSyntax extends Enum<JoinSourceSyntax>
JoinEntity was written in the source SQL. This provenance is
independent of the semantic join type and
determines how JoinEntity.getConditionText() should be interpreted.
EXPLICIT — a keyword join (JOIN ... ON,
LEFT JOIN, CROSS JOIN, NATURAL JOIN,
USING (...)). Only an anchored ON expression supplies
non-null condition text; USING, NATURAL, and
condition-less keyword joins do not. An explicit lateral join with
ON remains EXPLICIT and uses
JoinEntity.isLateral() as the orthogonal lateral marker.COMMA — a comma-FROM cross product
(FROM a, b). Condition text is always null, including after
WHERE predicates promote the semantic join type and populate
JoinEntity.getConditions().LATERAL — a lateral join: SQL Server
CROSS APPLY / OUTER APPLY (and reserved for
ANSI LATERAL / PostgreSQL lateral). The right operand
is correlated to the left; the join carries no ON/USING (the
correlation lives inside the right operand), so condition text is
null. Pair with JoinEntity.isLateral().SEMI — a predicate-derived semi-join: an
EXISTS / IN (or NOT EXISTS /
NOT IN) subquery in a WHERE clause (R8), not a written
FROM-clause join. Condition text is the complete verbatim predicate
wrapper when it can be anchored. Pair with
SemanticJoinType.SEMI /
SemanticJoinType.ANTI_SEMI.Introduced by join-analysis slice 162 (S1).
| Modifier and Type | Method and Description |
|---|---|
static JoinSourceSyntax |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static JoinSourceSyntax[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final JoinSourceSyntax EXPLICIT
public static final JoinSourceSyntax COMMA
public static final JoinSourceSyntax LATERAL
public static final JoinSourceSyntax SEMI
public static JoinSourceSyntax[] values()
for (JoinSourceSyntax c : JoinSourceSyntax.values()) System.out.println(c);
public static JoinSourceSyntax valueOf(String name)
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum type has no constant with the specified nameNullPointerException - if the argument is null