Skip to main content

ColumnOperation

Struct ColumnOperation 

Source
pub struct ColumnOperation {
    pub statement_kind: StatementKind,
    pub reads: Vec<ColumnRead>,
    pub writes: Vec<ColumnWrite>,
    pub lineage: Vec<ColumnLineageEdge>,
    pub diagnostics: Vec<ColumnLevelDiagnostic>,
}
Expand description

Column-level operations performed by a single SQL statement.

Mirrors TableOperation with the same three surfaces — reads, writes, lineage — at column granularity.

Fields§

§statement_kind: StatementKind§reads: Vec<ColumnRead>

Columns read by the statement. Occurrence-based: a column referenced more than once appears more than once (e.g. SELECT a FROM t WHERE a > 0 yields t.a twice). Each entry pairs the ColumnReference identity with its ResolutionKind. In source order — by each read’s written token span (reference.name.span), a deterministic function of the SQL rather than the internal traversal. References that share a token (a USING fan-in) keep a stable relative order. For the distinct identity set, dedup reads.iter().map(|r| &r.reference) via a HashSet (or, catalog-free, by ColumnReference::identity_key to fold case-equivalent spellings).

§writes: Vec<ColumnWrite>

Columns written by the statement, in source (column-list) order. Occurrence-based like reads. Each ColumnWrite pairs the identity with the column’s catalog match against its target — Cataloged when the column is in the target’s catalog columns, else Inferred (catalog-free, target columns unknown, or a freshly created / altered relation).

§lineage: Vec<ColumnLineageEdge>

Lineage edges. Statements that physically move data emit collapsed end-to-end edges (source → ColumnTarget::Relation); a bare SELECT emits source → ColumnTarget::QueryOutput edges. In source order of the contributing source column (by its written token span); occurrence / multiplicity is preserved.

§diagnostics: Vec<ColumnLevelDiagnostic>

Column-level diagnostics: wildcard suppression plus the UnsupportedStatement projection inherited from table granularity. Per-reference resolution outcomes surface on reads[i].resolution instead.

Trait Implementations§

Source§

impl Clone for ColumnOperation

Source§

fn clone(&self) -> ColumnOperation

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ColumnOperation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for ColumnOperation

Source§

impl PartialEq for ColumnOperation

Source§

fn eq(&self, other: &ColumnOperation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ColumnOperation

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.