001package gudusoft.gsqlparser.ir.semantic.joinanalysis; 002 003/** 004 * Discriminator for a {@link JoinEndpoint}. 005 * 006 * <ul> 007 * <li>{@link #RELATION} — a single FROM-clause relation (a base 008 * table, CTE, or derived table), identified by its alias and 009 * qualified name.</li> 010 * <li>{@link #JOIN_RESULT} — the accumulated result of prior joins in 011 * a left-deep chain, identified by the order of the join that 012 * produced it and the aliases it contributes.</li> 013 * <li>{@link #SUBQUERY} — a lifted predicate subquery (the right side 014 * of an {@code EXISTS} / {@code IN} semi-join, R8), identified by 015 * the {@code statementIndex} of the subquery's own 016 * {@code StatementGraph} block and an optional label.</li> 017 * </ul> 018 * 019 * <p>Introduced by join-analysis slice 162 (S1). 020 */ 021public enum JoinEndpointKind { 022 RELATION, 023 JOIN_RESULT, 024 SUBQUERY 025}