001package gudusoft.gsqlparser.resolver2.inference; 002 003/** 004 * Types of evidence for column inference. 005 * 006 * <p>Different evidence types have different confidence levels: 007 * - QUALIFIED_REFERENCE: Highest confidence (0.95) - explicit table.column 008 * - JOIN_CONDITION: Very high (0.9) - explicit relationship 009 * - INSERT_COLUMN_LIST: Perfect (1.0) - explicit column definition 010 * - SELECT_LIST: High (0.85) - direct column usage 011 * - UPDATE_SET: Very high (0.95) - explicit assignment 012 * - UNQUALIFIED_REFERENCE: Variable (0.5-0.8) - depends on context 013 * - INFERRED_FROM_USAGE: Lower (0.3-0.7) - pattern-based 014 * - METADATA: Perfect (1.0) - from database schema 015 */ 016public enum EvidenceType { 017 /** 018 * Column referenced with table qualifier. 019 * Example: t1.id in "WHERE t1.id = 100" 020 */ 021 QUALIFIED_REFERENCE, 022 023 /** 024 * Column referenced without table qualifier. 025 * Example: id in "WHERE id = 100" 026 */ 027 UNQUALIFIED_REFERENCE, 028 029 /** 030 * Column appears in JOIN condition. 031 * Example: t1.id in "JOIN t2 ON t1.id = t2.t1_id" 032 */ 033 JOIN_CONDITION, 034 035 /** 036 * Column appears in SELECT list. 037 * Example: name in "SELECT t1.name FROM t1" 038 */ 039 SELECT_LIST, 040 041 /** 042 * Column appears in INSERT column list. 043 * Example: id, name in "INSERT INTO t1 (id, name) VALUES (...)" 044 */ 045 INSERT_COLUMN_LIST, 046 047 /** 048 * Column appears in UPDATE SET clause. 049 * Example: name in "UPDATE t1 SET name = 'value'" 050 */ 051 UPDATE_SET, 052 053 /** 054 * Column inferred from usage patterns. 055 * Example: Inferring columns from SELECT * based on WHERE clause usage 056 */ 057 INFERRED_FROM_USAGE, 058 059 /** 060 * Column from database metadata. 061 * Example: Schema information from SQLEnv 062 */ 063 METADATA, 064 065 /** 066 * Column inferred from subquery result. 067 * Example: Columns propagated from inner SELECT 068 */ 069 SUBQUERY_RESULT, 070 071 /** 072 * Column from CTE definition. 073 * Example: Columns in WITH cte(c1, c2) AS (...) 074 */ 075 CTE_COLUMN_LIST 076}