pub struct SchemaDriftSpec {
pub on_drift: OnDrift,
pub allow_type_widening: bool,
pub on_incompatible: OnIncompatible,
pub relax_nullability_on_missing: bool,
}Expand description
User-facing schema: config block (pipeline level).
Fields§
§on_drift: OnDriftPolicy applied when drift is detected.
allow_type_widening: boolWhether a lossless widening counts as evolvable (vs incompatible).
Only consulted by evolve. Default: true.
on_incompatible: OnIncompatibleevolve only: action for an incompatible residue. Default: fail.
relax_nullability_on_missing: boolevolve only: whether the absence of a destination NOT NULL
column from a page may drop that column’s NOT NULL constraint.
Default false: a column merely omitted from one batch is not
evidence the column is genuinely optional (a transient/partial page
omits it just as readily as a real schema change), so auto-relaxing
would silently and irreversibly weaken the destination’s integrity
(issue #194 / F28). When false, an omitted required column is left
untouched — a page that genuinely lacks a required value then fails
loudly at write time rather than degrading the schema. Set true only
when you deliberately want missing-column omission to relax the
constraint. Nullability relaxation driven by an observed null value
in a present column (a widening that adds null) is unaffected by this
flag — that is evidence-based, not omission-based.
Trait Implementations§
Source§impl Clone for SchemaDriftSpec
impl Clone for SchemaDriftSpec
Source§fn clone(&self) -> SchemaDriftSpec
fn clone(&self) -> SchemaDriftSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SchemaDriftSpec
impl Debug for SchemaDriftSpec
Source§impl<'de> Deserialize<'de> for SchemaDriftSpec
impl<'de> Deserialize<'de> for SchemaDriftSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for SchemaDriftSpec
impl JsonSchema for SchemaDriftSpec
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for SchemaDriftSpec
impl PartialEq for SchemaDriftSpec
Source§impl Serialize for SchemaDriftSpec
impl Serialize for SchemaDriftSpec
impl StructuralPartialEq for SchemaDriftSpec
Auto Trait Implementations§
impl Freeze for SchemaDriftSpec
impl RefUnwindSafe for SchemaDriftSpec
impl Send for SchemaDriftSpec
impl Sync for SchemaDriftSpec
impl Unpin for SchemaDriftSpec
impl UnsafeUnpin for SchemaDriftSpec
impl UnwindSafe for SchemaDriftSpec
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request