pub enum SchemaCompatibilityError {
MissingTableSchema,
MissingColumn {
column: String,
},
ExtraColumn {
column: String,
},
TypeMismatch {
column: String,
table_type: LogicalDataType,
segment_type: LogicalDataType,
},
TimeIndexTypeMismatch {
column: String,
table_type: LogicalDataType,
segment_type: LogicalDataType,
},
LogicalSchema {
source: LogicalSchemaError,
},
}Expand description
Errors raised when a segment’s schema is not compatible with the table.
Variants§
MissingTableSchema
The table does not yet have a canonical logical schema.
Many call sites (like append) may choose to not use this and instead adopt the first segment’s schema, but we keep the error available for operations that require a fixed schema.
MissingColumn
The segment is missing a column that exists in the table schema.
ExtraColumn
The segment has an extra column that does not exist in the table schema.
TypeMismatch
Column exists in both schemas, but the logical type / nullability differ.
Fields
table_type: LogicalDataTypeThe type in the table schema.
segment_type: LogicalDataTypeThe type in the segment schema.
TimeIndexTypeMismatch
Specialised version of TypeMismatch for the time index column.
Fields
table_type: LogicalDataTypeThe type in the table schema.
segment_type: LogicalDataTypeThe type in the segment schema.
LogicalSchema
Logical schema construction or validation failed.
Fields
source: LogicalSchemaErrorThe underlying logical schema error.
Trait Implementations§
Source§impl Debug for SchemaCompatibilityError
impl Debug for SchemaCompatibilityError
Source§impl Display for SchemaCompatibilityError
impl Display for SchemaCompatibilityError
Source§impl Error for SchemaCompatibilityError
impl Error for SchemaCompatibilityError
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 SchemaCompatibilityError
impl ErrorCompat for SchemaCompatibilityError
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 SchemaCompatibilityError
impl RefUnwindSafe for SchemaCompatibilityError
impl Send for SchemaCompatibilityError
impl Sync for SchemaCompatibilityError
impl Unpin for SchemaCompatibilityError
impl UnsafeUnpin for SchemaCompatibilityError
impl UnwindSafe for SchemaCompatibilityError
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