#[non_exhaustive]pub enum SegmentCoverageError {
Storage {
path: String,
source: StorageError,
},
ParquetRead {
path: String,
source: ParquetError,
backtrace: Backtrace,
},
RowGroupTask {
path: String,
source: JoinError,
backtrace: Backtrace,
},
OrderedIndexColumn {
source: ParquetIndexColumnError,
},
IndexValue {
path: String,
column: String,
expected_domain: &'static str,
detail: String,
},
IndexIntervalMapping {
path: String,
source: IndexIntervalMappingError,
},
DuplicateIndexInterval {
path: String,
example_identity: Option<EntityIdentity>,
example_index_interval: IndexInterval,
},
EntityColumnNotFound {
path: String,
column: String,
},
EntityColumnUnsupportedType {
path: String,
column: String,
datatype: String,
},
EntityColumnHasNull {
path: String,
column: String,
},
EntityColumnEmpty {
path: String,
column: String,
},
EntityIdentity {
path: String,
source: EntityIdentityError,
},
}Expand description
Errors that can occur when reading or computing segment coverage.
Coverage computation typically:
- Reads the Parquet segment file from storage.
- Inspects the Parquet schema to locate the registered index column.
- Validates that the column matches the registered index domain.
- Streams projected index values and maps them to index interval IDs.
- Stores the IDs in a RoaringTreemap for efficient serialization.
Errors at any stage are captured here with context about the segment path, column name, and raw values involved.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Storage
Storage layer failed to read the segment file at the given path.
This may indicate the file is missing, inaccessible, or suffered an I/O error.
Fields
source: StorageErrorThe underlying storage error that caused this failure.
ParquetRead
Parquet format violation or metadata read error.
This may indicate the file is corrupted, truncated, or uses an unsupported Parquet feature.
Fields
source: ParquetErrorThe underlying Parquet library error.
RowGroupTask
A parallel row-group scan task failed before returning its typed result.
Fields
OrderedIndexColumn
The registered ordered-index column is missing or incompatible.
Fields
source: ParquetIndexColumnErrorExact registered and observed Parquet column details.
IndexValue
A projected ordered-index value cannot be represented in its registered domain.
Fields
IndexIntervalMapping
Ordered-index interval mapping failed.
Fields
source: IndexIntervalMappingErrorIndex interval mapping failure.
DuplicateIndexInterval
Two rows for the same entity occupy one ordered-index interval.
Fields
example_identity: Option<EntityIdentity>Complete entity identity, or None for a table without entity columns.
example_index_interval: IndexIntervalLogical ordered-index interval occupied by both rows.
EntityColumnNotFound
A configured entity column is missing from the segment.
EntityColumnUnsupportedType
A configured entity column has an unsupported Arrow type.
Fields
EntityColumnHasNull
A configured entity column contains a null value.
EntityColumnEmpty
The segment has no rows from which to construct an entity identity.
EntityIdentity
Ordered entity components could not form a complete identity.
Fields
source: EntityIdentityErrorIdentity validation failure.
Trait Implementations§
Source§impl Debug for SegmentCoverageError
impl Debug for SegmentCoverageError
Source§impl Display for SegmentCoverageError
impl Display for SegmentCoverageError
Source§impl Error for SegmentCoverageError
impl Error for SegmentCoverageError
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 ErrorCompat for SegmentCoverageError
impl ErrorCompat for SegmentCoverageError
Source§fn iter_chain(&self) -> ChainCompat<'_, '_> ⓘwhere
Self: AsErrorSource,
fn iter_chain(&self) -> ChainCompat<'_, '_> ⓘwhere
Self: AsErrorSource,
Error::source. Read moreSource§impl From<ParquetIndexColumnError> for SegmentCoverageError
impl From<ParquetIndexColumnError> for SegmentCoverageError
Source§fn from(error: ParquetIndexColumnError) -> Self
fn from(error: ParquetIndexColumnError) -> Self
Source§impl From<SegmentCoverageError> for AppendError
impl From<SegmentCoverageError> for AppendError
Source§fn from(error: SegmentCoverageError) -> Self
fn from(error: SegmentCoverageError) -> Self
Auto Trait Implementations§
impl !Freeze for SegmentCoverageError
impl !RefUnwindSafe for SegmentCoverageError
impl !UnwindSafe for SegmentCoverageError
impl Send for SegmentCoverageError
impl Sync for SegmentCoverageError
impl Unpin for SegmentCoverageError
impl UnsafeUnpin for SegmentCoverageError
Blanket Implementations§
Source§impl<T> AsErrorSource for Twhere
T: Error + 'static,
impl<T> AsErrorSource for Twhere
T: Error + 'static,
Source§fn as_error_source(&self) -> &(dyn Error + 'static)
fn as_error_source(&self) -> &(dyn Error + 'static)
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> 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