001package gudusoft.gsqlparser.resolver2;
002
003/**
004 * Enum representing different types of scopes in SQL resolution.
005 * Each scope type defines the visibility rules for names within that scope.
006 */
007public enum ScopeType {
008    /** Empty scope - base case for delegation chain */
009    EMPTY,
010
011    /** Global scope - contains session-level objects */
012    GLOBAL,
013
014    /** SELECT statement scope */
015    SELECT,
016
017    /** FROM clause scope - table sources */
018    FROM,
019
020    /** WHERE clause scope */
021    WHERE,
022
023    /** GROUP BY clause scope */
024    GROUP_BY,
025
026    /** HAVING clause scope */
027    HAVING,
028
029    /** ORDER BY clause scope */
030    ORDER_BY,
031
032    /** JOIN operation scope */
033    JOIN,
034
035    /** CTE (WITH clause) scope */
036    CTE,
037
038    /** Subquery scope */
039    SUBQUERY,
040
041    /** Window function scope */
042    WINDOW,
043
044    /** Set operation scope (UNION, INTERSECT, EXCEPT) */
045    SET_OP,
046
047    /** INSERT statement scope */
048    INSERT,
049
050    /** UPDATE statement scope */
051    UPDATE,
052
053    /** DELETE statement scope */
054    DELETE,
055
056    /** MERGE statement scope */
057    MERGE,
058
059    /** PL/SQL block scope (Oracle, PostgreSQL PL/pgSQL) */
060    PLSQL_BLOCK
061}