pub struct ColumnLineageEdge {
pub source: ColumnRead,
pub target: ColumnTarget,
pub kind: ColumnLineageKind,
}Expand description
A column-level lineage edge: data from source contributes to
target. Emitted for both relation-target statements (INSERT /
UPDATE / MERGE / CTAS / CREATE VIEW, target = ColumnTarget::Relation)
and bare SELECT (target = ColumnTarget::QueryOutput).
One edge per (source, target) pair: SELECT a + b FROM t1 emits two
edges, from t1.a and t1.b to the same query-output target, each
tagged Transformation.
Statements that physically move data emit collapsed end-to-end lineage
— INSERT INTO t1 (col) SELECT b FROM t2 emits t2.b → t1.col
directly, with no intermediate query-output entry.
Fields§
§source: ColumnReadThe column the lineage edge flows from, paired with the
resolver’s ResolutionKind in that placement.
source.reference is the inner (post-collapse) real-table
reference; source.resolution follows that inner reference’s
classification rather than any intermediate derived step’s.
target: ColumnTarget§kind: ColumnLineageKindTrait Implementations§
Source§impl Clone for ColumnLineageEdge
impl Clone for ColumnLineageEdge
Source§fn clone(&self) -> ColumnLineageEdge
fn clone(&self) -> ColumnLineageEdge
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more