pub enum Op {
Put {
table_id: u64,
rows: Vec<u8>,
},
Delete {
table_id: u64,
row_ids: Vec<RowId>,
},
TruncateTable {
table_id: u64,
},
ExternalTableState {
name: String,
state: Vec<u8>,
},
Flush {
table_id: u64,
flushed_epoch: u64,
},
TxnCommit {
epoch: u64,
added_runs: Vec<AddedRun>,
},
TxnAbort,
Ddl(DdlOp),
BeforeImage {
table_id: u64,
row_id: RowId,
row: Vec<u8>,
},
CommitTimestamp {
unix_nanos: u64,
},
SpilledRows {
table_id: u64,
rows: Vec<u8>,
},
}Variants§
Put
Delete
TruncateTable
ExternalTableState
Durable module-owned state for an external table. The payload is opaque
to the core; recovery writes the last committed payloads back under
_vtab/<name>/state.json.
Flush
System marker (txn_id == SYSTEM_TXN_ID): everything up to
flushed_epoch for table_id is durable in a sorted run, so recovery
may skip replaying older records for that table.
TxnCommit
Seals a transaction: every earlier record with the same txn_id is
committed and becomes visible at epoch.
TxnAbort
Aborts a transaction; its staged records are discarded on recovery.
Ddl(DdlOp)
BeforeImage
Row image captured immediately before a Delete in the same committed transaction. Recovery ignores it; durable CDC uses it for delete/update deltas. Appended last to preserve all earlier bincode discriminants.
CommitTimestamp
Commit-timestamp ledger record written immediately before TxnCommit. Carries the physical component of the commit’s HLC timestamp (spec §8.1, micros × 1_000) for transactions sequenced through the commit log, and wall-clock UTC nanoseconds on the legacy single-table/DDL append paths. PITR uses this durable ledger to map timestamp cutoffs to commit epochs.
SpilledRows
Logical rows for a transaction whose normal recovery path links an immutable spilled run. Ordinary recovery ignores this duplicate payload; PITR and CDC use it after the source run has been compacted or garbage-collected. Chunks stay below the WAL reader frame limit.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Op
impl<'de> Deserialize<'de> for Op
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Op
impl RefUnwindSafe for Op
impl Send for Op
impl Sync for Op
impl Unpin for Op
impl UnsafeUnpin for Op
impl UnwindSafe for Op
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more