001package gudusoft.gsqlparser.ir.semantic.diff;
002
003/**
004 * Slice-7 divergence classes; the in-scope subset of the seven classes
005 * defined in the unified-roadmap §10.4.
006 */
007public enum DivergenceClass {
008    /** Dlineage projection has the edge or output, IR projection does not. */
009    IR_MISSING_DEPENDENCY,
010    /** IR projection has the edge or output, dlineage projection does not. */
011    IR_EXTRA_DEPENDENCY,
012    /** Same (role, output, baseColumn) but different baseTable. */
013    BINDING_MISMATCH,
014    /** Same (output, baseTable, baseColumn) but role differs (FILTER vs JOIN). */
015    FILTER_OR_JOIN_SCOPE_MISMATCH,
016    /** Both sides know the output but disagree about its aggregate flag. */
017    AGGREGATION_MISMATCH,
018    /** Builder threw — whole comparison flagged once. */
019    UNSUPPORTED_BY_IR,
020    /** Dlineage projection bailed — whole comparison flagged once. */
021    UNSUPPORTED_BY_DLINEAGE
022}