pub struct CdcEmitter { /* private fields */ }Expand description
Helper struct for building CDC events during a transaction.
Usage (in the SQL execution layer):
ⓘ
let mut emitter = CdcEmitter::new(cdc_log.clone(), txn_id);
emitter.insert("users", key, value);
emitter.update("users", key, new_value);
emitter.delete("users", key);
emitter.flush(); // called after successful commitImplementations§
Source§impl CdcEmitter
impl CdcEmitter
pub fn new(log: Arc<CdcLog>, txn_id: u64) -> Self
Sourcepub fn update(&mut self, table: &str, key: Vec<u8>, new_value: Vec<u8>)
pub fn update(&mut self, table: &str, key: Vec<u8>, new_value: Vec<u8>)
Record an UPDATE event.
Sourcepub fn schema_change(&mut self, table: &str, ddl: String)
pub fn schema_change(&mut self, table: &str, ddl: String)
Record a schema change event.
Sourcepub fn flush(self)
pub fn flush(self)
Flush all pending events to the CDC log. Call this AFTER the transaction has been committed successfully.
Sourcepub fn pending_count(&self) -> usize
pub fn pending_count(&self) -> usize
Number of pending events.
Auto Trait Implementations§
impl Freeze for CdcEmitter
impl RefUnwindSafe for CdcEmitter
impl Send for CdcEmitter
impl Sync for CdcEmitter
impl Unpin for CdcEmitter
impl UnsafeUnpin for CdcEmitter
impl UnwindSafe for CdcEmitter
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
Converts
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>
Converts
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