001package gudusoft.gsqlparser.ir.common;
002
003/**
004 * Data effect type for lineage edges and procedural data flow edges.
005 * Describes how a value is transformed from source to target.
006 */
007public enum EffectType {
008
009    /** Direct pass-through, value unchanged. Example: SELECT a FROM t */
010    EXACT_COPY,
011
012    /** Function/expression transformation. Example: SELECT UPPER(a) FROM t */
013    WEAK_COPY,
014
015    /** Aggregation causes granularity change. Example: SELECT SUM(a) FROM t */
016    AGGREGATION,
017
018    /** Multiple sources synthesized. Example: SELECT a || b FROM t */
019    PARTIAL_COPY,
020
021    /** Affected by control flow condition. Example: assignment inside IF branch */
022    CONTROL_DEPENDENT,
023
024    /** Dynamic SQL or ambiguous path. Example: EXECUTE IMMEDIATE */
025    AMBIGUOUS,
026
027    /** Window function transformation. Example: SELECT ROW_NUMBER() OVER(...) */
028    WINDOW_FUNCTION,
029
030    /** Type cast. Example: CAST(a AS VARCHAR) */
031    TYPE_CAST,
032
033    /** Conditional expression. Example: CASE WHEN ... THEN a ELSE b */
034    CONDITIONAL
035}