pub struct Insert<T> { /* private fields */ }Expand description
Performs one INSERT.
The Insert::end must be called to finalize the INSERT.
Otherwise, the whole INSERT will be aborted.
Rows are being sent progressively to spread network load.
Implementations§
Source§impl<T> Insert<T>
impl<T> Insert<T>
Sourcepub fn with_timeouts(
self,
send_timeout: Option<Duration>,
end_timeout: Option<Duration>,
) -> Self
pub fn with_timeouts( self, send_timeout: Option<Duration>, end_timeout: Option<Duration>, ) -> Self
Sets timeouts for different operations.
send_timeout restricts time on sending a data chunk to a socket.
None disables the timeout, it’s a default.
It’s roughly equivalent to tokio::time::timeout(insert.write(...)).
end_timeout restricts time on waiting for a response from the CH
server. Thus, it includes all work needed to handle INSERT by the
CH server, e.g. handling all materialized views and so on.
None disables the timeout, it’s a default.
It’s roughly equivalent to tokio::time::timeout(insert.end(...)).
These timeouts are much more performant (~x10) than wrapping write()
and end() calls into tokio::time::timeout().
Sourcepub fn with_option(
self,
name: impl Into<String>,
value: impl Into<String>,
) -> Self
pub fn with_option( self, name: impl Into<String>, value: impl Into<String>, ) -> Self
Similar to Client::with_option, but for this particular INSERT
statement only.
§Panics
If called after the request is started, e.g., after Insert::write.
Sourcepub fn write<'a>(
&'a mut self,
row: &T,
) -> impl Future<Output = Result<()>> + 'a + Sendwhere
T: Serialize,
pub fn write<'a>(
&'a mut self,
row: &T,
) -> impl Future<Output = Result<()>> + 'a + Sendwhere
T: Serialize,
Serializes the provided row into an internal buffer. Once the buffer is full, it’s sent to a background task writing to the socket.
Close to:
async fn write<T>(&self, row: &T) -> Result<usize>;A returned future doesn’t depend on the row’s lifetime.
Returns an error if the row cannot be serialized or the background task
failed. Once failed, the whole INSERT is aborted and cannot be
used anymore.
§Panics
If called after the previous call that returned an error.