001package gudusoft.gsqlparser.ir.common; 002 003/** 004 * Enumeration of all IR node types across all layers. 005 */ 006public enum IRNodeKind { 007 008 // === Bound IR === 009 BOUND_OBJECT_REF, 010 BOUND_COLUMN_REF, 011 BOUND_ROUTINE_REF, 012 BOUND_TYPE_REF, 013 014 // === Relational IR === 015 SCAN, 016 SUBQUERY_SCAN, 017 PROJECT, 018 FILTER, 019 JOIN, 020 AGGREGATE, 021 SET_OP, 022 SORT, 023 LIMIT, 024 WINDOW, 025 DISTINCT, 026 INSERT, 027 UPDATE, 028 DELETE, 029 MERGE, 030 CREATE_VIEW_AS, 031 CREATE_TABLE_AS, 032 CTE_DEFINE, 033 VALUES, 034 TABLE_FUNCTION_SCAN, 035 UNNEST_SCAN, 036 PIVOT, 037 UNPIVOT, 038 DERIVED_STRUCT_PRODUCER, 039 040 // === Expression IR === 041 REX_LITERAL, 042 REX_COLUMN_REF, 043 REX_VARIABLE_REF, 044 REX_CALL, 045 REX_CASE, 046 REX_CAST, 047 REX_SUBQUERY, 048 REX_FIELD_ACCESS, 049 REX_ARRAY_ACCESS, 050 REX_WINDOW_CALL, 051 REX_ROW, 052 REX_PARAMETER, 053 054 // === Procedural IR === 055 PL_ROUTINE, 056 PL_PACKAGE, 057 PL_BLOCK, 058 PL_DECLARE, 059 PL_ASSIGN, 060 PL_SELECT_INTO, 061 PL_IF, 062 PL_LOOP, 063 PL_CURSOR_DEF, 064 PL_CURSOR_OPEN, 065 PL_CURSOR_FETCH, 066 PL_CURSOR_CLOSE, 067 PL_CALL, 068 PL_RETURN, 069 PL_RAISE, 070 PL_DYNAMIC_SQL, 071 PL_EXCEPTION_HANDLER, 072 PL_FOR_ALL, 073 PL_PIPE_ROW, 074 PL_EXIT, 075 PL_CONTINUE, 076 PL_GOTO, 077 PL_NULL, 078 PL_EMBEDDED_SQL, 079 080 // === Flow IR === 081 CFG_BLOCK, 082 CALL_EDGE, 083 PROVENANCE_EDGE 084}