pub struct WriteTxConn<'a>(/* private fields */);Expand description
The connection of a write transaction, locked. Dereferences to the Postgres connection.
Methods from Deref<Target = PgConnection>§
Sourcepub fn server_version_num(&self) -> Option<u32>
pub fn server_version_num(&self) -> Option<u32>
the version number of the server in libpq format
Sourcepub async fn copy_in_raw(
&mut self,
statement: &str,
) -> Result<PgCopyIn<&mut PgConnection>, Error>
pub async fn copy_in_raw( &mut self, statement: &str, ) -> Result<PgCopyIn<&mut PgConnection>, Error>
Issue a COPY FROM STDIN statement and transition the connection to streaming data
to Postgres. This is a more efficient way to import data into Postgres as compared to
INSERT but requires one of a few specific data formats (text/CSV/binary).
If statement is anything other than a COPY ... FROM STDIN ... command, an error is
returned.
Command examples and accepted formats for COPY data are shown here:
https://www.postgresql.org/docs/current/sql-copy.html
§Note
PgCopyIn::finish or PgCopyIn::abort must be called when finished or the connection will return an error the next time it is used.
Sourcepub async fn copy_out_raw<'c>(
&'c mut self,
statement: &str,
) -> Result<Pin<Box<dyn Stream<Item = Result<Bytes, Error>> + Send + 'c>>, Error>
pub async fn copy_out_raw<'c>( &'c mut self, statement: &str, ) -> Result<Pin<Box<dyn Stream<Item = Result<Bytes, Error>> + Send + 'c>>, Error>
Issue a COPY TO STDOUT statement and transition the connection to streaming data
from Postgres. This is a more efficient way to export data from Postgres but
arrives in chunks of one of a few data formats (text/CSV/binary).
If statement is anything other than a COPY ... TO STDOUT ... command,
an error is returned.
Note that once this process has begun, unless you read the stream to completion, it can only be canceled in two ways:
- by closing the connection, or:
- by using another connection to kill the server process that is sending the data as shown in this StackOverflow answer.
If you don’t read the stream to completion, the next time the connection is used it will need to read and discard all the remaining queued data, which could take some time.
Command examples and accepted formats for COPY data are shown here:
https://www.postgresql.org/docs/current/sql-copy.html
Trait Implementations§
Source§impl Deref for WriteTxConn<'_>
impl Deref for WriteTxConn<'_>
Source§type Target = PgConnection
type Target = PgConnection
Source§fn deref(&self) -> &PgConnection
fn deref(&self) -> &PgConnection
Source§impl DerefMut for WriteTxConn<'_>
impl DerefMut for WriteTxConn<'_>
Source§fn deref_mut(&mut self) -> &mut PgConnection
fn deref_mut(&mut self) -> &mut PgConnection
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for WriteTxConn<'a>
impl<'a> !UnwindSafe for WriteTxConn<'a>
impl<'a> Freeze for WriteTxConn<'a>
impl<'a> Send for WriteTxConn<'a>
impl<'a> Sync for WriteTxConn<'a>
impl<'a> Unpin for WriteTxConn<'a>
impl<'a> UnsafeUnpin for WriteTxConn<'a>
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> 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more