#[non_exhaustive]pub enum ColumnarError {
Show 27 variants
Codec(CodecError),
TruncatedSegment {
expected: usize,
got: usize,
},
InvalidMagic([u8; 4]),
IncompatibleVersion {
reader_major: u8,
segment_major: u8,
segment_minor: u8,
},
FooterCrcMismatch {
stored: u32,
computed: u32,
},
ColumnOutOfRange {
index: usize,
count: usize,
},
SchemaMismatch {
expected: usize,
got: usize,
},
EmptyMemtable,
Serialization(String),
TypeMismatch {
column: String,
expected: String,
},
JsonParse {
column: String,
source: Error,
},
RangeParse {
column: String,
literal: String,
},
MsgpackSerialize {
column: String,
source: Error,
},
MsgpackDeserialize {
column: String,
source: MsgpackError,
},
NullViolation(String),
DuplicatePrimaryKey,
PrimaryKeyNotFound,
SegmentIdExhausted,
Corruption {
segment_id: Option<String>,
reason: String,
offset: Option<u64>,
},
MemtableCellCorrupt {
column: String,
row: usize,
reason: String,
},
WalRowCorrupt {
offset: usize,
reason: String,
},
StringCellNotUtf8 {
column: String,
row: usize,
},
MissingKek,
KekRequired,
EncryptionFailed(String),
DecryptionFailed(String),
BudgetExhausted(MemError),
}Expand description
Errors from columnar segment encoding, decoding, and validation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Codec(CodecError)
TruncatedSegment
InvalidMagic([u8; 4])
IncompatibleVersion
ColumnOutOfRange
SchemaMismatch
EmptyMemtable
Serialization(String)
TypeMismatch
JsonParse
RangeParse
MsgpackSerialize
MsgpackDeserialize
NullViolation(String)
DuplicatePrimaryKey
PrimaryKeyNotFound
SegmentIdExhausted
Corruption
Structural corruption detected while parsing a segment header or footer.
offset is the byte position from the start of the segment where the
problem was detected. segment_id is None when the parse fails before
the id can be resolved (e.g. inside the footer itself).
MemtableCellCorrupt
A memtable cell whose bytes do not hold a value of its declared type.
The memtable writer encodes every cell it stores, so this is in-memory
corruption. The read is refused rather than answered with NULL.
WalRowCorrupt
A columnar WAL row whose bytes do not decode.
offset is the byte position in the row where decoding stopped. The
decode is refused rather than answered with NULL or replacement
characters.
StringCellNotUtf8
A string column cell whose bytes are not UTF-8 at segment write time.
The memtable push stores only valid UTF-8, so these bytes were damaged in memory. The segment write is refused rather than written with wrong block statistics.
MissingKek
Segment is encrypted (starts with SEGV) but no KEK was supplied.
KekRequired
Segment is plaintext (NDBS) but a KEK is configured (policy violation).
EncryptionFailed(String)
AES-256-GCM encryption of the segment payload failed.
DecryptionFailed(String)
AES-256-GCM decryption of the segment payload failed.
BudgetExhausted(MemError)
Memory budget exhausted or global ceiling exceeded.
Trait Implementations§
Source§impl Debug for ColumnarError
impl Debug for ColumnarError
Source§impl Display for ColumnarError
impl Display for ColumnarError
Source§impl Error for ColumnarError
impl Error for ColumnarError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<CodecError> for ColumnarError
impl From<CodecError> for ColumnarError
Source§fn from(source: CodecError) -> Self
fn from(source: CodecError) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for ColumnarError
impl !UnwindSafe for ColumnarError
impl Freeze for ColumnarError
impl Send for ColumnarError
impl Sync for ColumnarError
impl Unpin for ColumnarError
impl UnsafeUnpin for ColumnarError
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.