Skip to main content

CopyInWriter

Struct CopyInWriter 

Source
pub struct CopyInWriter<'a> { /* private fields */ }
Expand description

A writer for COPY IN operations.

This struct holds the connection lock while sending data to ensure exclusive access during the COPY operation.

Implementations§

Source§

impl CopyInWriter<'_>

Source

pub fn send(&mut self, data: &[u8]) -> Result<()>

Sends a chunk of COPY data.

The data should be in HyperBinary format. For best performance, batch multiple rows into larger chunks (e.g., 1-16 MB).

§Errors

Returns Error (I/O) if the wire write of the CopyData frame fails.

Source

pub fn flush(&mut self) -> Result<()>

Flushes any buffered data to the server.

§Errors

Returns Error (I/O) if flushing the internal write buffer to the transport fails.

Source

pub fn send_direct(&mut self, data: &[u8]) -> Result<()>

Sends COPY data directly to the stream without internal buffering.

This writes data directly to the TCP stream, letting the kernel handle buffering. More efficient for streaming large amounts of data. Call flush_stream() periodically to ensure data is sent.

§Errors

Returns Error (I/O) if writing to the underlying stream fails.

Source

pub fn flush_stream(&mut self) -> Result<()>

Flushes the TCP stream.

Use with send_direct() to periodically ensure data reaches the server.

§Errors

Returns Error (I/O) if flushing the underlying transport fails.

Source

pub fn reserve_buffer(&mut self, capacity: usize)

Reserves capacity in the write buffer to avoid reallocations.

Call this before bulk operations to pre-allocate buffer space.

Source

pub fn finish(self) -> Result<u64>

Finishes the COPY operation successfully.

Returns the number of rows inserted.

§Errors
  • Returns Error (I/O) if writing CopyDone or flushing the transport fails.
  • Returns Error (server) if the server reports a COPY-side failure (constraint violation, type coercion error, etc.) via an ErrorResponse after CopyDone.
Source

pub fn cancel(self, reason: &str) -> Result<()>

Cancels the COPY operation.

All data sent so far will be discarded.

§Errors

Returns Error (I/O) if writing the CopyFail frame or flushing the transport fails, or Error (server) if the server reports an unexpected status after the cancel.

Trait Implementations§

Source§

impl<'a> Debug for CopyInWriter<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> !Send for CopyInWriter<'a>

§

impl<'a> Freeze for CopyInWriter<'a>

§

impl<'a> RefUnwindSafe for CopyInWriter<'a>

§

impl<'a> Sync for CopyInWriter<'a>

§

impl<'a> Unpin for CopyInWriter<'a>

§

impl<'a> UnsafeUnpin for CopyInWriter<'a>

§

impl<'a> UnwindSafe for CopyInWriter<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more