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,
},
}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
Wall-clock UTC nanoseconds recorded immediately before TxnCommit. PITR uses this durable ledger to map timestamp cutoffs to commit epochs.
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