Skip to main content

build_rowid_versions

Function build_rowid_versions 

Source
pub fn build_rowid_versions(rowid: i64, views: &[RowView]) -> Vec<RowVersion>
Expand description

Build the ordered RowVersions for ONE rowid by walking views (already in chronological order: epoch commits ascending, then the final live view).

Emits a version only when the value CHANGES (insert / update / delete / reinsert), collapsing identical consecutive values into one version labelled by the EARLIEST view it appeared in. View-state is evidence-based: PresentInFinalView when the value is the final live value; ValueChangedLater when a later view replaced it with a different value; AbsentInFinalView when the rowid’s last value disappeared. Rowid REUSE (present → absent → present with a different record) flags every version of the rowid rowid_reused and treats the post-gap value as a fresh insert.

Pure: no I/O. The result is in chronological order for this rowid.