pub enum ChangeEvent {
Insert {
data: Arc<RecordBatch>,
timestamp: i64,
sequence: u64,
},
Delete {
data: Arc<RecordBatch>,
timestamp: i64,
sequence: u64,
},
Update {
old: Arc<RecordBatch>,
new: Arc<RecordBatch>,
timestamp: i64,
sequence: u64,
},
Watermark {
timestamp: i64,
},
Snapshot {
data: Arc<RecordBatch>,
timestamp: i64,
sequence: u64,
},
}Expand description
A change event carrying Arrow data for subscriber delivery.
Each variant includes the minimal data needed for that event type.
Data is shared via Arc<RecordBatch> for zero-copy fan-out to
multiple subscribers.
Variants§
Insert
A new row batch was inserted.
Fields
data: Arc<RecordBatch>The inserted rows.
Delete
A row batch was deleted.
Fields
data: Arc<RecordBatch>The deleted rows.
Update
A row batch was updated (before + after).
Watermark
Watermark progress (no data).
Snapshot
Initial snapshot delivery.
Implementations§
Source§impl ChangeEvent
impl ChangeEvent
Sourcepub fn insert(data: Arc<RecordBatch>, timestamp: i64, sequence: u64) -> Self
pub fn insert(data: Arc<RecordBatch>, timestamp: i64, sequence: u64) -> Self
Creates an insert change event.
Sourcepub fn delete(data: Arc<RecordBatch>, timestamp: i64, sequence: u64) -> Self
pub fn delete(data: Arc<RecordBatch>, timestamp: i64, sequence: u64) -> Self
Creates a delete change event.
Sourcepub fn update(
old: Arc<RecordBatch>,
new: Arc<RecordBatch>,
timestamp: i64,
sequence: u64,
) -> Self
pub fn update( old: Arc<RecordBatch>, new: Arc<RecordBatch>, timestamp: i64, sequence: u64, ) -> Self
Creates an update change event with old and new values.
Sourcepub fn snapshot(data: Arc<RecordBatch>, timestamp: i64, sequence: u64) -> Self
pub fn snapshot(data: Arc<RecordBatch>, timestamp: i64, sequence: u64) -> Self
Creates a snapshot change event.
Sourcepub fn event_type(&self) -> EventType
pub fn event_type(&self) -> EventType
Returns the EventType for this change event.
Sourcepub fn sequence(&self) -> Option<u64>
pub fn sequence(&self) -> Option<u64>
Returns the sequence number, or None for watermark events.
Sourcepub fn row_count(&self) -> usize
pub fn row_count(&self) -> usize
Returns the total number of rows in this event.
For Update events, returns the row count of the new batch.
For Watermark, returns 0.
Sourcepub fn from_changelog_record(record: &ChangelogRecord, sequence: u64) -> Self
pub fn from_changelog_record(record: &ChangelogRecord, sequence: u64) -> Self
Creates a ChangeEvent from a ChangelogRecord.
Maps CDC operations to subscription event types:
Insert/UpdateAfter→ChangeEvent::InsertDelete/UpdateBefore→ChangeEvent::Delete
Trait Implementations§
Source§impl Clone for ChangeEvent
impl Clone for ChangeEvent
Source§fn clone(&self) -> ChangeEvent
fn clone(&self) -> ChangeEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ChangeEvent
impl !RefUnwindSafe for ChangeEvent
impl Send for ChangeEvent
impl Sync for ChangeEvent
impl Unpin for ChangeEvent
impl !UnwindSafe for ChangeEvent
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.