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 moreimpl Copy for ColumnLineageKind
Source§impl Debug for ColumnLineageKind
impl Debug for ColumnLineageKind
impl Eq for ColumnLineageKind
Source§impl Hash for ColumnLineageKind
impl Hash for ColumnLineageKind
Source§impl PartialEq for ColumnLineageKind
impl PartialEq for ColumnLineageKind
Source§fn eq(&self, other: &ColumnLineageKind) -> bool
fn eq(&self, other: &ColumnLineageKind) -> bool
self and other values to be equal, and is used by ==.