pub struct CdcCapability {
pub chosen: CdcKind,
pub server_version: Option<String>,
pub server_major_minor: Option<(u32, u32)>,
pub native_expected: bool,
pub native_usable: bool,
pub fell_back: bool,
pub reason: String,
}Expand description
What detection concluded — the observable half of “pick the backend by what the server actually is”.
This is logged as a cdc_backend tracing event and serialised into the
listener’s state_json, so an operator can read which path ran and, when
it is not the one they expected, why — instead of inferring it from
timings. A fallback is never silent: fell_back is true
and reason carries the engine’s own error text.
Fields§
§chosen: CdcKindThe backend that will run.
server_version: Option<String>The Spark Connect server’s version string, verbatim (None off-Spark).
server_major_minor: Option<(u32, u32)>Parsed (major, minor) of server_version.
native_expected: boolIs the server new enough that the native CDC engine exists (>= 4.2)?
native_usable: boolDid the native path actually resolve for this table? Spark 4.2 only
answers CHANGES for a connector implementing
org.apache.spark.sql.connector.catalog.Changelog; Iceberg does not.
fell_back: boolTrue when native_expected held but
native_usable did not — the honest degrade.
reason: StringHuman-readable justification, including the probe’s error when it failed.
Implementations§
Source§impl CdcCapability
impl CdcCapability
Trait Implementations§
Source§impl Clone for CdcCapability
impl Clone for CdcCapability
Source§impl Debug for CdcCapability
impl Debug for CdcCapability
Source§impl<'de> Deserialize<'de> for CdcCapability
impl<'de> Deserialize<'de> for CdcCapability
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 PartialEq for CdcCapability
impl PartialEq for CdcCapability
Source§impl Serialize for CdcCapability
impl Serialize for CdcCapability
impl StructuralPartialEq for CdcCapability
Auto Trait Implementations§
impl Freeze for CdcCapability
impl RefUnwindSafe for CdcCapability
impl Send for CdcCapability
impl Sync for CdcCapability
impl Unpin for CdcCapability
impl UnsafeUnpin for CdcCapability
impl UnwindSafe for CdcCapability
Blanket Implementations§
impl<T> Allocation for T
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> 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> 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> 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