pub enum SyncMode {
Full,
Incremental,
Cdc,
}Variants§
Full
Re-read the whole table when its snapshot changes (idempotent MERGE).
Incremental
Read only what changed since the last processed snapshot. Over Spark
Connect it is an EXCEPT ALL diff — append-only, inserts alone. Over an
Iceberg table read by skade (watch) it is the same per-commit changelog
as SyncMode::Cdc: updates and deletes are applied too.
Cdc
Changelog (CDC) mode: read Iceberg’s system.create_changelog_view
between the last and the current snapshot, exposing a _change_type
column (INSERT / UPDATE_AFTER / UPDATE_BEFORE / DELETE).
INSERT/UPDATE_AFTER rows become upserts; DELETE rows become
DETACH DELETEs. UPDATE_BEFORE (the update pre-image) is dropped — its
UPDATE_AFTER upsert already carries the new state. The first round (no
prior snapshot) reads the whole table as inserts, like Full.
Implementations§
Trait Implementations§
impl Copy for SyncMode
Source§impl<'de> Deserialize<'de> for SyncMode
impl<'de> Deserialize<'de> for SyncMode
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>,
impl Eq for SyncMode
impl StructuralPartialEq for SyncMode
Auto Trait Implementations§
impl Freeze for SyncMode
impl RefUnwindSafe for SyncMode
impl Send for SyncMode
impl Sync for SyncMode
impl Unpin for SyncMode
impl UnsafeUnpin for SyncMode
impl UnwindSafe for SyncMode
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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