Skip to main content

SegmentCoverageError

Enum SegmentCoverageError 

Source
#[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:

  1. Reads the Parquet segment file from storage.
  2. Inspects the Parquet schema to locate the registered index column.
  3. Validates that the column matches the registered index domain.
  4. Streams projected index values and maps them to index interval IDs.
  5. 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
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

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

§path: String

The path to the segment file that could not be read.

§source: StorageError

The 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

§path: String

The path to the segment file with a Parquet format error.

§source: ParquetError

The underlying Parquet library error.

§backtrace: Backtrace

The backtrace at the time the error occurred.

§

RowGroupTask

A parallel row-group scan task failed before returning its typed result.

Fields

§path: String

Segment path being scanned.

§source: JoinError

Tokio task failure, including panic or cancellation details.

§backtrace: Backtrace

Backtrace captured while joining the row-group task.

§

OrderedIndexColumn

The registered ordered-index column is missing or incompatible.

Fields

§source: ParquetIndexColumnError

Exact registered and observed Parquet column details.

§

IndexValue

A projected ordered-index value cannot be represented in its registered domain.

Fields

§path: String

Path to the segment file.

§column: String

Registered ordered-index column.

§expected_domain: &'static str

Registered ordered-index domain.

§detail: String

Value decoding failure.

§

IndexIntervalMapping

Ordered-index interval mapping failed.

Fields

§path: String

The path to the segment file.

§source: IndexIntervalMappingError

Index interval mapping failure.

§

DuplicateIndexInterval

Two rows for the same entity occupy one ordered-index interval.

Fields

§path: String

Path to the segment file.

§example_identity: Option<EntityIdentity>

Complete entity identity, or None for a table without entity columns.

§example_index_interval: IndexInterval

Logical ordered-index interval occupied by both rows.

§

EntityColumnNotFound

A configured entity column is missing from the segment.

Fields

§path: String

Path to the segment file.

§column: String

Missing configured entity column.

§

EntityColumnUnsupportedType

A configured entity column has an unsupported Arrow type.

Fields

§path: String

Path to the segment file.

§column: String

Configured entity column.

§datatype: String

Observed Arrow type.

§

EntityColumnHasNull

A configured entity column contains a null value.

Fields

§path: String

Path to the segment file.

§column: String

Configured entity column.

§

EntityColumnEmpty

The segment has no rows from which to construct an entity identity.

Fields

§path: String

Path to the segment file.

§column: String

First configured entity column.

§

EntityIdentity

Ordered entity components could not form a complete identity.

Fields

§path: String

Path to the segment file.

§source: EntityIdentityError

Identity validation failure.

Trait Implementations§

Source§

impl Debug for SegmentCoverageError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for SegmentCoverageError

Source§

fn fmt(&self, __snafu_display_formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for SegmentCoverageError
where Self: Debug + Display,

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl ErrorCompat for SegmentCoverageError

Source§

fn backtrace(&self) -> Option<&Backtrace>

Returns a Backtrace that may be printed.
Source§

fn iter_chain(&self) -> ChainCompat<'_, '_>
where Self: AsErrorSource,

Returns an iterator for traversing the chain of errors, starting with the current error and continuing with recursive calls to Error::source. Read more
Source§

impl From<ParquetIndexColumnError> for SegmentCoverageError

Source§

fn from(error: ParquetIndexColumnError) -> Self

Converts to this type from the input type.
Source§

impl From<SegmentCoverageError> for AppendError

Source§

fn from(error: SegmentCoverageError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsErrorSource for T
where T: Error + 'static,

Source§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method receivers.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more