pub enum HotCandidateInspection {
Hit(Row),
MissingRow,
Invisible,
Tombstone,
TtlExpired,
PrimaryKeyMismatch {
materialized_pk: Vec<u8>,
requested: Vec<u8>,
},
}Expand description
Diagnostic classification of a HOT (Hash-Organized Table) candidate row.
Table::get collapses several distinct failure modes into None
(tombstone, TTL expiry, snapshot invisibility). To preserve observability
across every HOT fallback path, [Table::resolve_pk_with_hot_fallback]
inspects the candidate directly and tags the failure with one of these
reasons before delegating to the PK equality scanner.
PrimaryKeyMismatch carries the mismatched bytes for diagnostics — the
materialized_pk is the value read from the row’s PK column and
requested is the lookup key bytes (after HMAC tokenization). Neither is
used as the authoritative result; the fallback scanner is the only
source of the returned row set.
Variants§
Hit(Row)
Mapped RowId materialized, is visible, live, TTL-valid, and carries
the requested PK. The branch may return this row without a fallback.
MissingRow
Row does not exist at the mapped RowId — overlay and all runs
returned no version. The base row was removed entirely.
Invisible
Row exists but is stamped with a (committed_epoch, commit_ts) that
the calling Snapshot does not observe. Distinct from a tombstone:
the row may still be visible at a later snapshot.
Tombstone
The newest visible row at the mapped RowId is a tombstone
(deleted = true). A replacement row with the same PK may exist
elsewhere — the scanner is responsible for finding it.
TtlExpired
The newest visible row exists and is not deleted, but the row’s TTL
metadata says the row expired at the calling wall clock. Distinct
from Tombstone: the row is still durable, just hidden by TTL.
PrimaryKeyMismatch
Row materialized with valid visibility/TTL, but its materialized PK does not match the requested PK bytes. The HOT map is stale and must not return this row — only the scanner’s verified result is returned.
Trait Implementations§
Source§impl Clone for HotCandidateInspection
impl Clone for HotCandidateInspection
Source§fn clone(&self) -> HotCandidateInspection
fn clone(&self) -> HotCandidateInspection
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 HotCandidateInspection
impl Debug for HotCandidateInspection
Source§impl PartialEq for HotCandidateInspection
impl PartialEq for HotCandidateInspection
impl StructuralPartialEq for HotCandidateInspection
Auto Trait Implementations§
impl Freeze for HotCandidateInspection
impl RefUnwindSafe for HotCandidateInspection
impl Send for HotCandidateInspection
impl Sync for HotCandidateInspection
impl Unpin for HotCandidateInspection
impl UnsafeUnpin for HotCandidateInspection
impl UnwindSafe for HotCandidateInspection
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,
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