pub struct TableOperation {
pub statement_kind: StatementKind,
pub reads: Vec<TableRead>,
pub writes: Vec<TableWrite>,
pub lineage: Vec<TableLineageEdge>,
pub diagnostics: Vec<TableLevelDiagnostic>,
}Expand description
Operations performed by a single SQL statement.
Fields§
§statement_kind: StatementKindWhat the statement does at a coarse level (Insert / Update / Merge / CTAS / …).
reads: Vec<TableRead>Tables read by the statement. Occurrence-based: a table referenced
more than once appears more than once. Each TableRead pairs the
identity with the catalog-match
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. For the distinct
identity set, dedup reads.iter().map(|r| &r.reference) via a HashSet
(or, catalog-free, by
TableReference::identity_key
to fold case-equivalent spellings).
writes: Vec<TableWrite>Tables written by the statement, in source order. Occurrence-based
like reads. Each TableWrite pairs the target identity with its
catalog-match ResolutionKind — so a write
target carries the same Cataloged / Inferred / Ambiguous signal
a scanned source does (and the Cataloged-detects-catalog-aware
invariant holds on writes too).
lineage: Vec<TableLineageEdge>Lineage edges, only for statements that physically move data
(INSERT, UPDATE, MERGE with an Insert / Update WHEN
clause, CTAS, CREATE VIEW, ALTER VIEW). In source order of the
feeding source table (by its written token span); occurrence is
preserved on the source side — a real table joined twice contributes
two edges — but a CTE body, the one declaration shared by every
CteRef, contributes once (it materializes once, so it feeds once).
diagnostics: Vec<TableLevelDiagnostic>Non-fatal diagnostics from the walk; only
UnsupportedStatement arises at this granularity.
Trait Implementations§
Source§impl Clone for TableOperation
impl Clone for TableOperation
Source§fn clone(&self) -> TableOperation
fn clone(&self) -> TableOperation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TableOperation
impl Debug for TableOperation
impl Eq for TableOperation
Source§impl PartialEq for TableOperation
impl PartialEq for TableOperation
Source§fn eq(&self, other: &TableOperation) -> bool
fn eq(&self, other: &TableOperation) -> bool
self and other values to be equal, and is used by ==.