001package gudusoft.gsqlparser.resolver2.binding;
002
003/**
004 * Column-level authority verdict returned by
005 * {@link BindingMetadataAuthority#lookup}.
006 *
007 * <p>Slice S4 (plan §5.5). The post-pass uses this verdict to decide whether
008 * a missing column may emit {@code UNKNOWN_COLUMN}: only an
009 * {@link #AUTHORITATIVE_ABSENT} verdict justifies the diagnostic.</p>
010 *
011 * <p>Made {@code public} so resume documents and future post-pass code in
012 * sibling packages can name the verdict; not surfaced through any documented
013 * binding API method (see plan §5.7 — public {@code ResolutionResult} accessor
014 * remains rejected).</p>
015 */
016public enum ColumnAuthority {
017
018    /** The catalog authoritatively declares the column exists. */
019    AUTHORITATIVE_PRESENT,
020
021    /**
022     * The catalog authoritatively declares the column does NOT exist on a
023     * namespace whose metadata state is {@link gudusoft.gsqlparser.resolver2.namespace.MetadataState#FOUND}.
024     */
025    AUTHORITATIVE_ABSENT,
026
027    /**
028     * The catalog cannot make an authoritative claim — namespace state is
029     * {@code METADATA_UNAVAILABLE} or {@code NOT_FOUND_IN_CATALOG}, the column
030     * lookup is ambiguous, or inputs were null. Strict mode may emit
031     * {@code CATALOG_METADATA_UNAVAILABLE} (WARNING); never
032     * {@code UNKNOWN_COLUMN}.
033     */
034    METADATA_UNAVAILABLE
035}