pub enum RecoverLogicalLogState {
Start,
ReadHeader {
reader: Box<StreamingLogicalLogReader>,
preserved_tvfs: Vec<Arc<VirtualTable>>,
},
ReadTxTs {
reader: Box<StreamingLogicalLogReader>,
preserved_tvfs: Vec<Arc<VirtualTable>>,
header_present: bool,
txts_st: ReadPersistentTxTsMaxState,
},
ReadCookie {
reader: Box<StreamingLogicalLogReader>,
preserved_tvfs: Vec<Arc<VirtualTable>>,
persistent_tx_ts_max: u64,
},
QuerySchema {
reader: Box<StreamingLogicalLogReader>,
preserved_tvfs: Vec<Arc<VirtualTable>>,
persistent_tx_ts_max: u64,
cookie: u32,
stmt: Option<Box<Statement>>,
schema_rows: FxHashMap<i64, ImmutableRecord>,
},
Replay {
ctx: Box<RecoverCtx>,
},
Done,
}Expand description
Sub state machine for MvStore::maybe_recover_logical_log. The
setup phases (header read, persistent-tx-ts read, schema-cookie read,
sqlite_schema scan) each yield IO; the Replay phase carries the loop
accumulators in RecoverCtx across per-frame next_frame yields.
Variants§
Start
ReadHeader
ReadTxTs
ReadCookie
Fields
§
reader: Box<StreamingLogicalLogReader>QuerySchema
Replay
Fields
§
ctx: Box<RecoverCtx>Done
Trait Implementations§
Source§impl Default for RecoverLogicalLogState
impl Default for RecoverLogicalLogState
Source§fn default() -> RecoverLogicalLogState
fn default() -> RecoverLogicalLogState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for RecoverLogicalLogState
impl !UnwindSafe for RecoverLogicalLogState
impl Freeze for RecoverLogicalLogState
impl Send for RecoverLogicalLogState
impl Sync for RecoverLogicalLogState
impl Unpin for RecoverLogicalLogState
impl UnsafeUnpin for RecoverLogicalLogState
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
Converts
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> ⓘ
Converts
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