001package gudusoft.gsqlparser.ir.semantic.joinanalysis;
002
003/**
004 * Join classification surfaced on a {@link JoinEntity}. This is the
005 * <em>semantic</em> join taxonomy consumed by SQLFlow's join-analysis
006 * endpoint; it is intentionally independent of the parser's
007 * {@code EJoinType} so the public contract is stable across dialects.
008 *
009 * <p>{@link #IMPLICIT_CROSS} models an admitted comma-FROM cross product
010 * (i.e. {@code FROM a, b}) — see {@link JoinSourceSyntax#COMMA}.
011 * {@link #UNSUPPORTED} is reserved for join shapes the semantic builder
012 * rejects today (e.g. {@code CROSS APPLY}); it is surfaced explicitly
013 * rather than guessed.
014 *
015 * <p>Introduced by join-analysis slice 162 (S1); the {@code EJoinType}
016 * mapping is confirmed and recorded in slice 167 (S6).
017 */
018public enum SemanticJoinType {
019    INNER,
020    LEFT,
021    RIGHT,
022    FULL,
023    CROSS,
024    NATURAL,
025    IMPLICIT_CROSS,
026    UNSUPPORTED
027}