pub enum ColumnLineageKind {
Passthrough,
Transformation,
}Expand description
How a source column contributes to its target — the one clean, exclusive distinction: is the value forwarded unchanged, or derived?
Finer sub-classification of Transformation (aggregate vs scalar,
cardinality, etc.) is deliberately not modelled — it is lossy for edge
cases (window aggregates, value-preserving STRING_AGG) and not
load-bearing for the core dependency / impact-analysis use case. A finer
variant can be added later if a concrete consumer needs it (a breaking
change while the crate is pre-1.0).
Variants§
Passthrough
Source value forwarded unchanged (SELECT a FROM t1,
INSERT INTO t1 (a) SELECT b FROM t2). A rename (SELECT a AS b)
is still Passthrough — detect it by comparing source / target
name. Composition stays Passthrough only when every step in the
chain is.
Transformation
Source feeds an expression that changes the value: arithmetic,
function calls, CASE branches, casts, aggregates (SUM,
STRING_AGG), window functions, etc. Composition yields
Transformation whenever any step in the chain is one.
Trait Implementations§
Source§impl Clone for ColumnLineageKind
impl Clone for ColumnLineageKind
Source§fn clone(&self) -> ColumnLineageKind
fn clone(&self) -> ColumnLineageKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more