001package gudusoft.gsqlparser.dlineage.dataflow.model; 002 003/** 004 * Authoritative classification of <em>how</em> a dlineage table endpoint was 005 * introduced in the analyzed SQL, orthogonal to {@link EndpointKind} ("what it is"). 006 * 007 * <p>The create-effect values ({@link #CREATE_TABLE_DDL}, {@link #SELECT_INTO}, 008 * {@link #CTAS}, {@link #CLONE_TABLE}) are <strong>parse facts</strong> and MUST be set 009 * regardless of whether the object's schema resolved ({@code isDetermined()}) — unlike 010 * the existing {@code fromDDL} signal, which is gated on resolution and is therefore 011 * absent exactly in the unresolved-source population this classification targets. See 012 * docs/tmp/dlineage-authoritative-endpoint-classification.md. 013 * 014 * <p>The full value set is defined here; the §5.6 "minimum complete" scope only 015 * <em>produces</em> {@link #CREATE_TABLE_DDL}, {@link #SELECT_INTO}, {@link #CTAS}, 016 * {@link #CLONE_TABLE} and {@link #UNKNOWN}. The remaining values 017 * ({@code CATALOG_REFERENCE}, {@code CTE_DEFINITION}, {@code DERIVED_SUBQUERY}, 018 * {@code FUNCTION_CALL}, {@code LITERAL}, {@code VARIABLE_REFERENCE}) are reserved for 019 * later coverage. 020 */ 021public enum EndpointIntroduction { 022 CATALOG_REFERENCE, CREATE_TABLE_DDL, SELECT_INTO, CTAS, CLONE_TABLE, 023 CTE_DEFINITION, DERIVED_SUBQUERY, FUNCTION_CALL, LITERAL, VARIABLE_REFERENCE, UNKNOWN 024}