pub enum SchemaCompatibilityError {
MissingTableSchema,
MissingColumn {
column: String,
},
MissingIndexColumn {
column: String,
},
MissingEntityColumn {
column: String,
},
UnsupportedEntityColumnType {
column: String,
actual: LogicalDataType,
},
EntityIdentityArityMismatch {
expected: usize,
actual: usize,
},
EntityIdentityTypeMismatch {
column: String,
expected: LogicalDataType,
actual: &'static str,
},
ExtraColumn {
column: String,
},
TypeMismatch {
column: String,
table_type: LogicalDataType,
segment_type: LogicalDataType,
},
IndexColumnTypeMismatch {
column: String,
table_type: LogicalDataType,
segment_type: LogicalDataType,
},
IndexKindMismatch {
column: String,
expected: &'static str,
actual: 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.
MissingIndexColumn
The logical schema does not contain the registered index column.
MissingEntityColumn
The logical schema does not contain a configured entity column.
UnsupportedEntityColumnType
A configured entity column has an unsupported logical type.
Fields
actual: LogicalDataTypeUnsupported logical type.
EntityIdentityArityMismatch
A persisted single-entity identity has the wrong component count.
Fields
EntityIdentityTypeMismatch
A persisted entity component has the wrong scalar type.
Fields
expected: LogicalDataTypeLogical type required by 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.
IndexColumnTypeMismatch
Specialized version of TypeMismatch for the ordered index column.
Fields
table_type: LogicalDataTypeThe type in the table schema.
segment_type: LogicalDataTypeThe type in the segment schema.
IndexKindMismatch
The registered index kind disagrees with the logical schema.
Fields
actual: LogicalDataTypeLogical type found in the 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 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 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§
impl<T> Allocation for T
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> 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