Struct sqlx_postgres::PgCopyIn
source · pub struct PgCopyIn<C: DerefMut<Target = PgConnection>> { /* private fields */ }
Expand description
A connection in streaming COPY FROM STDIN
mode.
Created by PgConnection::copy_in_raw or Pool::copy_out_raw.
§Note
PgCopyIn::finish or PgCopyIn::abort must be called when finished or the connection will return an error the next time it is used.
Implementations§
source§impl<C: DerefMut<Target = PgConnection>> PgCopyIn<C>
impl<C: DerefMut<Target = PgConnection>> PgCopyIn<C>
sourcepub fn is_textual(&self) -> bool
pub fn is_textual(&self) -> bool
Returns true
if Postgres is expecting data in text or CSV format.
sourcepub fn num_columns(&self) -> usize
pub fn num_columns(&self) -> usize
Returns the number of columns expected in the input.
sourcepub fn column_is_textual(&self, column: usize) -> bool
pub fn column_is_textual(&self, column: usize) -> bool
Check if a column is expecting data in text format (true
) or binary format (false
).
§Panics
If column
is out of range according to .num_columns()
.
sourcepub async fn send(
&mut self,
data: impl Deref<Target = [u8]>
) -> Result<&mut Self>
pub async fn send( &mut self, data: impl Deref<Target = [u8]> ) -> Result<&mut Self>
Send a chunk of COPY
data.
If you’re copying data from an AsyncRead
, maybe consider Self::read_from instead.
sourcepub async fn read_from(
&mut self,
source: impl AsyncRead + Unpin
) -> Result<&mut Self>
pub async fn read_from( &mut self, source: impl AsyncRead + Unpin ) -> Result<&mut Self>
Copy data directly from source
to the database without requiring an intermediate buffer.
source
will be read to the end.
§Note: Completion Step Required
You must still call either Self::finish or Self::abort to complete the process.
§Note: Runtime Features
This method uses the AsyncRead
trait which is re-exported from either Tokio or async-std
depending on which runtime feature is used.
The runtime features used to be mutually exclusive, but are no longer.
If both runtime-async-std
and runtime-tokio
features are enabled, the Tokio version
takes precedent.
sourcepub async fn abort(self, msg: impl Into<String>) -> Result<()>
pub async fn abort(self, msg: impl Into<String>) -> Result<()>
Signal that the COPY
process should be aborted and any data received should be discarded.
The given message can be used for indicating the reason for the abort in the database logs.
The server is expected to respond with an error, so only unexpected errors are returned.