Struct mz_storage::source::postgres::RowSender
source · struct RowSender {
sender: Sender<(usize, InternalMessage)>,
buffered_message: Option<RowMessage>,
}
Expand description
A type that makes it easy to correctly send inserts and deletes.
Note: RowSender::delete/insert
should be called with the same
lsn until close_lsn
is called, which should be called and awaited
before dropping the RowSender
or moving onto a new lsn.
Internally, this type uses asserts to uphold the first requirement.
Fields§
§sender: Sender<(usize, InternalMessage)>
§buffered_message: Option<RowMessage>
Implementations§
source§impl RowSender
impl RowSender
sourcepub fn new(sender: Sender<(usize, InternalMessage)>) -> Self
pub fn new(sender: Sender<(usize, InternalMessage)>) -> Self
Create a new RowSender
.
sourcepub async fn send_row(
&mut self,
lsn: PgLsn,
output_index: usize,
value: Result<(Row, Diff), Error>
)
pub async fn send_row( &mut self, lsn: PgLsn, output_index: usize, value: Result<(Row, Diff), Error> )
Send a triplet for the specific output
sourcepub async fn close_lsn(&mut self, lsn: PgLsn)
pub async fn close_lsn(&mut self, lsn: PgLsn)
Finalize an lsn, making sure all messages that my be buffered are flushed, and that the
last message sent is marked as closing the lsn
(which is the messages offset
in the
rest of the source pipeline.
async fn send_row_inner( &self, lsn: PgLsn, output: usize, value: Result<(Row, Diff), Error>, end: bool )
Auto Trait Implementations§
impl !RefUnwindSafe for RowSender
impl Send for RowSender
impl Sync for RowSender
impl Unpin for RowSender
impl !UnwindSafe for RowSender
Blanket Implementations§
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>
Wrap the input message
T
in a tonic::Request
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.