pub enum TableError {
Show 24 variants
TransactionLog {
source: CommitError,
},
EmptyTable,
NotTimeSeries {
kind: TableKind,
},
AlreadyExists {
current_version: u64,
},
SegmentMeta {
source: SegmentError,
},
SchemaCompatibility {
source: SchemaCompatibilityError,
},
MissingCanonicalSchema {
version: u64,
},
Storage {
source: StorageError,
},
InvalidRange {
start: DateTime<Utc>,
end: DateTime<Utc>,
},
ParquetRead {
source: ParquetError,
},
Arrow {
source: ArrowError,
},
MissingTimeColumn {
column: String,
},
UnsupportedTimeType {
column: String,
datatype: DataType,
},
TimeConversionOverflow {
column: String,
timestamp: DateTime<Utc>,
},
SegmentCoverage {
source: SegmentCoverageError,
},
TableCoverageBucketMismatch {
expected: TimeBucket,
actual: TimeBucket,
pointer_version: u64,
},
CoverageSidecar {
source: CoverageError,
},
CoverageOverlap {
segment_path: String,
overlap_count: u64,
example_bucket: Option<u32>,
},
ExistingSegmentMissingCoverage {
segment_id: SegmentId,
},
SegmentCoverageSidecarRead {
segment_id: SegmentId,
coverage_path: String,
source: Box<CoverageError>,
},
BucketDomainOverflow {
last_bucket_id: u64,
max: u32,
},
MissingTableCoveragePointer,
SegmentEntityIdentity {
source: SegmentEntityIdentityError,
},
EntityMismatch {
segment_path: String,
expected: BTreeMap<String, String>,
found: BTreeMap<String, String>,
},
}Expand description
Errors from high-level time-series table operations.
Each variant carries enough context for callers to surface actionable messages to users or implement retries where appropriate (for example, conflicts on optimistic concurrency control).
Variants§
TransactionLog
Any error coming from the transaction log / commit machinery (for example, OCC conflicts, storage failures, or corrupt commits).
Fields
source: CommitErrorUnderlying transaction log / commit error.
EmptyTable
Attempting to open a table that has no commits at all (CURRENT == 0).
NotTimeSeries
The underlying table is not a time-series table (TableKind mismatch).
AlreadyExists
Attempt to create a table where commits already exist (idempotency guard for create).
SegmentMeta
Segment-level metadata / Parquet error during append (for example, missing time column, unsupported type, corrupt stats).
Fields
source: SegmentErrorUnderlying segment metadata error.
SchemaCompatibility
Schema compatibility error when appending a segment with incompatible schema (no evolution allowed in v0.1).
Fields
source: SchemaCompatibilityErrorUnderlying schema compatibility error.
MissingCanonicalSchema
Table has progressed past the initial metadata commit but still lacks a canonical logical schema (invariant violation for v0.1).
Storage
Storage error while accessing table data (read/write failure at the storage layer).
Fields
source: StorageErrorUnderlying storage error while reading or writing table data.
InvalidRange
Start and end timestamps must satisfy start < end when scanning.
Fields
ParquetRead
Parquet read/IO error during scanning or schema extraction.
Fields
source: ParquetErrorUnderlying Parquet error raised during read or schema extraction.
Arrow
Arrow compute or conversion error while materializing or filtering batches.
Fields
source: ArrowErrorUnderlying Arrow error raised during batch conversion or filtering.
MissingTimeColumn
Segment is missing the configured time column required for scans.
UnsupportedTimeType
Time column exists but has an unsupported Arrow type for scanning.
Fields
TimeConversionOverflow
Converting a timestamp to the requested unit would overflow i64.
Fields
SegmentCoverage
Segment Coverage error.
Fields
source: SegmentCoverageErrorUnderlying coverage error.
TableCoverageBucketMismatch
Table coverage pointer uses a bucket spec that doesn’t match the table’s index bucket.
Fields
expected: TimeBucketBucket spec defined by the table’s time index.
actual: TimeBucketBucket spec recorded in the table coverage pointer.
CoverageSidecar
Coverage sidecar read/write or computation error.
Fields
source: CoverageErrorUnderlying Coverage error.
CoverageOverlap
Appending would overlap existing coverage for the same segment path.
Fields
ExistingSegmentMissingCoverage
Existing segment lacks a coverage_path when coverage is required.
SegmentCoverageSidecarRead
Reading the per-segment coverage sidecar failed while rebuilding coverage.
Fields
source: Box<CoverageError>Underlying coverage error (boxed to keep the variant size small).
BucketDomainOverflow
Building an expected bucket bitmap would exceed the u32 bucket domain.
In v0.1 we store bucket ids in RoaringBitmap (u32). If the requested time range maps to bucket ids > u32::MAX, we must fail instead of truncating in release builds.
Fields
MissingTableCoveragePointer
Table state is missing a coverage snapshot pointer when required.
SegmentEntityIdentity
Failed to read or validate the entity identity stored in a segment.
Fields
source: SegmentEntityIdentityErrorUnderlying entity identity extraction error.
EntityMismatch
Segment entity identity does not match the expected table identity.
Trait Implementations§
Source§impl Debug for TableError
impl Debug for TableError
Source§impl Display for TableError
impl Display for TableError
Source§impl Error for TableError
impl Error for TableError
Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§fn cause(&self) -> Option<&dyn Error>
fn cause(&self) -> Option<&dyn Error>
Source§impl ErrorCompat for TableError
impl ErrorCompat for TableError
Source§fn iter_chain(&self) -> ChainCompat<'_, '_>where
Self: AsErrorSource,
fn iter_chain(&self) -> ChainCompat<'_, '_>where
Self: AsErrorSource,
Error::source. Read moreAuto Trait Implementations§
impl !Freeze for TableError
impl !RefUnwindSafe for TableError
impl Send for TableError
impl Sync for TableError
impl Unpin for TableError
impl UnsafeUnpin for TableError
impl !UnwindSafe for TableError
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
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