#[non_exhaustive]pub struct DataChangeRecord {Show 13 fields
pub commit_timestamp: Option<Timestamp>,
pub record_sequence: String,
pub server_transaction_id: String,
pub is_last_record_in_transaction_in_partition: bool,
pub table: String,
pub column_metadata: Vec<ColumnMetadata>,
pub mods: Vec<Mod>,
pub mod_type: ModType,
pub value_capture_type: ValueCaptureType,
pub number_of_records_in_transaction: i32,
pub number_of_partitions_in_transaction: i32,
pub transaction_tag: String,
pub is_system_transaction: bool,
/* private fields */
}Expand description
A data change record contains a set of changes to a table with the same modification type (insert, update, or delete) committed at the same commit timestamp in one change stream partition for the same transaction. Multiple data change records can be returned for the same transaction across multiple change stream partitions.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.commit_timestamp: Option<Timestamp>Indicates the timestamp in which the change was committed. DataChangeRecord.commit_timestamps, PartitionStartRecord.start_timestamps, PartitionEventRecord.commit_timestamps, and PartitionEndRecord.end_timestamps can have the same value in the same partition.
record_sequence: StringRecord sequence numbers are unique and monotonically increasing (but not necessarily contiguous) for a specific timestamp across record types in the same partition. To guarantee ordered processing, the reader should process records (of potentially different types) in record_sequence order for a specific timestamp in the same partition.
The record sequence number ordering across partitions is only meaningful in the context of a specific transaction. Record sequence numbers are unique across partitions for a specific transaction. Sort the DataChangeRecords for the same server_transaction_id by record_sequence to reconstruct the ordering of the changes within the transaction.
server_transaction_id: StringProvides a globally unique string that represents the transaction in which the change was committed. Multiple transactions can have the same commit timestamp, but each transaction has a unique server_transaction_id.
is_last_record_in_transaction_in_partition: boolIndicates whether this is the last record for a transaction in the current partition. Clients can use this field to determine when all records for a transaction in the current partition have been received.
table: StringName of the table affected by the change.
column_metadata: Vec<ColumnMetadata>Provides metadata describing the columns associated with the mods listed below.
mods: Vec<Mod>Describes the changes that were made.
mod_type: ModTypeDescribes the type of change.
value_capture_type: ValueCaptureTypeDescribes the value capture type that was specified in the change stream configuration when this change was captured.
number_of_records_in_transaction: i32Indicates the number of data change records that are part of this transaction across all change stream partitions. This value can be used to assemble all the records associated with a particular transaction.
number_of_partitions_in_transaction: i32Indicates the number of partitions that return data change records for this transaction. This value can be helpful in assembling all records associated with a particular transaction.
transaction_tag: StringIndicates the transaction tag associated with this transaction.
is_system_transaction: boolIndicates whether the transaction is a system transaction. System transactions include those issued by time-to-live (TTL), column backfill, etc.
Implementations§
Source§impl DataChangeRecord
impl DataChangeRecord
Sourcepub fn set_commit_timestamp<T>(self, v: T) -> Self
pub fn set_commit_timestamp<T>(self, v: T) -> Self
Sets the value of commit_timestamp.
Sourcepub fn set_or_clear_commit_timestamp<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_commit_timestamp<T>(self, v: Option<T>) -> Self
Sets or clears the value of commit_timestamp.
Sourcepub fn set_record_sequence<T: Into<String>>(self, v: T) -> Self
pub fn set_record_sequence<T: Into<String>>(self, v: T) -> Self
Sets the value of record_sequence.
Sourcepub fn set_server_transaction_id<T: Into<String>>(self, v: T) -> Self
pub fn set_server_transaction_id<T: Into<String>>(self, v: T) -> Self
Sets the value of server_transaction_id.
Sourcepub fn set_is_last_record_in_transaction_in_partition<T: Into<bool>>(
self,
v: T,
) -> Self
pub fn set_is_last_record_in_transaction_in_partition<T: Into<bool>>( self, v: T, ) -> Self
Sets the value of is_last_record_in_transaction_in_partition.
Sourcepub fn set_column_metadata<T, V>(self, v: T) -> Self
pub fn set_column_metadata<T, V>(self, v: T) -> Self
Sets the value of column_metadata.
Sourcepub fn set_mod_type<T: Into<ModType>>(self, v: T) -> Self
pub fn set_mod_type<T: Into<ModType>>(self, v: T) -> Self
Sets the value of mod_type.
Sourcepub fn set_value_capture_type<T: Into<ValueCaptureType>>(self, v: T) -> Self
pub fn set_value_capture_type<T: Into<ValueCaptureType>>(self, v: T) -> Self
Sets the value of value_capture_type.
Sourcepub fn set_number_of_records_in_transaction<T: Into<i32>>(self, v: T) -> Self
pub fn set_number_of_records_in_transaction<T: Into<i32>>(self, v: T) -> Self
Sets the value of number_of_records_in_transaction.
Sourcepub fn set_number_of_partitions_in_transaction<T: Into<i32>>(self, v: T) -> Self
pub fn set_number_of_partitions_in_transaction<T: Into<i32>>(self, v: T) -> Self
Sets the value of number_of_partitions_in_transaction.
Sourcepub fn set_transaction_tag<T: Into<String>>(self, v: T) -> Self
pub fn set_transaction_tag<T: Into<String>>(self, v: T) -> Self
Sets the value of transaction_tag.
Sourcepub fn set_is_system_transaction<T: Into<bool>>(self, v: T) -> Self
pub fn set_is_system_transaction<T: Into<bool>>(self, v: T) -> Self
Sets the value of is_system_transaction.
Trait Implementations§
Source§impl Clone for DataChangeRecord
impl Clone for DataChangeRecord
Source§fn clone(&self) -> DataChangeRecord
fn clone(&self) -> DataChangeRecord
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 DataChangeRecord
impl Debug for DataChangeRecord
Source§impl Default for DataChangeRecord
impl Default for DataChangeRecord
Source§fn default() -> DataChangeRecord
fn default() -> DataChangeRecord
Source§impl Message for DataChangeRecord
impl Message for DataChangeRecord
Source§impl PartialEq for DataChangeRecord
impl PartialEq for DataChangeRecord
Source§fn eq(&self, other: &DataChangeRecord) -> bool
fn eq(&self, other: &DataChangeRecord) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for DataChangeRecord
Auto Trait Implementations§
impl Freeze for DataChangeRecord
impl RefUnwindSafe for DataChangeRecord
impl Send for DataChangeRecord
impl Sync for DataChangeRecord
impl Unpin for DataChangeRecord
impl UnsafeUnpin for DataChangeRecord
impl UnwindSafe for DataChangeRecord
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
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> 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