Struct sqlx_core::postgres::PgConnection
source · [−]pub struct PgConnection { /* private fields */ }
Expand description
A connection to a PostgreSQL database.
Implementations
sourceimpl PgConnection
impl PgConnection
sourcepub async fn copy_in_raw(
&mut self,
statement: &str
) -> Result<PgCopyIn<&mut Self>>
pub async fn copy_in_raw(
&mut self,
statement: &str
) -> Result<PgCopyIn<&mut Self>>
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<BoxStream<'c, Result<Bytes>>>
pub async fn copy_out_raw<'c>(
&'c mut self,
statement: &str
) -> Result<BoxStream<'c, Result<Bytes>>>
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
sourceimpl<'c> Acquire<'c> for &'c mut PgConnection
impl<'c> Acquire<'c> for &'c mut PgConnection
type Database = Postgres
type Connection = &'c mut <Postgres as Database>::Connection
fn acquire(self) -> BoxFuture<'c, Result<Self::Connection, Error>>
fn begin(self) -> BoxFuture<'c, Result<Transaction<'c, Postgres>, Error>>
sourceimpl Connection for PgConnection
impl Connection for PgConnection
type Database = Postgres
type Options = PgConnectOptions
sourcefn close(self) -> BoxFuture<'static, Result<(), Error>>
fn close(self) -> BoxFuture<'static, Result<(), Error>>
Explicitly close this database connection. Read more
sourcefn ping(&mut self) -> BoxFuture<'_, Result<(), Error>>
fn ping(&mut self) -> BoxFuture<'_, Result<(), Error>>
Checks if a connection to the database is still valid.
sourcefn begin(
&mut self
) -> BoxFuture<'_, Result<Transaction<'_, Self::Database>, Error>> where
Self: Sized,
fn begin(
&mut self
) -> BoxFuture<'_, Result<Transaction<'_, Self::Database>, Error>> where
Self: Sized,
Begin a new transaction or establish a savepoint within the active transaction. Read more
sourcefn cached_statements_size(&self) -> usize
fn cached_statements_size(&self) -> usize
The number of statements currently cached in the connection.
sourcefn clear_cached_statements(&mut self) -> BoxFuture<'_, Result<(), Error>>
fn clear_cached_statements(&mut self) -> BoxFuture<'_, Result<(), Error>>
Removes all statements from the cache, closing them on the server if needed. Read more
sourcefn transaction<'a, F, R, E>(
&'a mut self,
callback: F
) -> BoxFuture<'a, Result<R, E>> where
for<'c> F: FnOnce(&'c mut Transaction<'_, Self::Database>) -> BoxFuture<'c, Result<R, E>> + 'a + Send + Sync,
Self: Sized,
R: Send,
E: From<Error> + Send,
fn transaction<'a, F, R, E>(
&'a mut self,
callback: F
) -> BoxFuture<'a, Result<R, E>> where
for<'c> F: FnOnce(&'c mut Transaction<'_, Self::Database>) -> BoxFuture<'c, Result<R, E>> + 'a + Send + Sync,
Self: Sized,
R: Send,
E: From<Error> + Send,
Execute the function inside a transaction. Read more
sourceimpl Debug for PgConnection
impl Debug for PgConnection
sourceimpl<'c> Executor<'c> for &'c mut PgConnection
impl<'c> Executor<'c> for &'c mut PgConnection
type Database = Postgres
sourcefn fetch_many<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxStream<'e, Result<Either<PgQueryResult, PgRow>, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
fn fetch_many<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxStream<'e, Result<Either<PgQueryResult, PgRow>, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
Execute multiple queries and return the generated results as a stream from each query, in a stream. Read more
sourcefn fetch_optional<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxFuture<'e, Result<Option<PgRow>, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
fn fetch_optional<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxFuture<'e, Result<Option<PgRow>, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
Execute the query and returns at most one row.
sourcefn prepare_with<'e, 'q: 'e>(
self,
sql: &'q str,
parameters: &'e [PgTypeInfo]
) -> BoxFuture<'e, Result<PgStatement<'q>, Error>> where
'c: 'e,
fn prepare_with<'e, 'q: 'e>(
self,
sql: &'q str,
parameters: &'e [PgTypeInfo]
) -> BoxFuture<'e, Result<PgStatement<'q>, Error>> where
'c: 'e,
Prepare the SQL query, with parameter type information, to inspect the type information about its parameters and results. Read more
sourcefn execute<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxFuture<'e, Result<<Self::Database as Database>::QueryResult, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
fn execute<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxFuture<'e, Result<<Self::Database as Database>::QueryResult, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
Execute the query and return the total number of rows affected.
sourcefn execute_many<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxStream<'e, Result<<Self::Database as Database>::QueryResult, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
fn execute_many<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxStream<'e, Result<<Self::Database as Database>::QueryResult, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
Execute multiple queries and return the rows affected from each query, in a stream.
sourcefn fetch<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxStream<'e, Result<<Self::Database as Database>::Row, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
fn fetch<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxStream<'e, Result<<Self::Database as Database>::Row, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
Execute the query and return the generated results as a stream.
sourcefn fetch_all<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxFuture<'e, Result<Vec<<Self::Database as Database>::Row>, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
fn fetch_all<'e, 'q: 'e, E: 'q>(
self,
query: E
) -> BoxFuture<'e, Result<Vec<<Self::Database as Database>::Row>, Error>> where
'c: 'e,
E: Execute<'q, Self::Database>,
Execute the query and return all the generated results, collected into a Vec
.
sourceimpl From<PgConnection> for AnyConnection
impl From<PgConnection> for AnyConnection
sourcefn from(conn: PgConnection) -> Self
fn from(conn: PgConnection) -> Self
Performs the conversion.
sourceimpl Migrate for PgConnection
impl Migrate for PgConnection
fn ensure_migrations_table(&mut self) -> BoxFuture<'_, Result<(), MigrateError>>
sourcefn version(
&mut self
) -> BoxFuture<'_, Result<Option<(i64, bool)>, MigrateError>>
fn version(
&mut self
) -> BoxFuture<'_, Result<Option<(i64, bool)>, MigrateError>>
fn dirty_version(&mut self) -> BoxFuture<'_, Result<Option<i64>, MigrateError>>
fn list_applied_migrations(
&mut self
) -> BoxFuture<'_, Result<Vec<AppliedMigration>, MigrateError>>
fn lock(&mut self) -> BoxFuture<'_, Result<(), MigrateError>>
fn unlock(&mut self) -> BoxFuture<'_, Result<(), MigrateError>>
sourcefn validate<'e: 'm, 'm>(
&'e mut self,
migration: &'m Migration
) -> BoxFuture<'m, Result<(), MigrateError>>
fn validate<'e: 'm, 'm>(
&'e mut self,
migration: &'m Migration
) -> BoxFuture<'m, Result<(), MigrateError>>
fn apply<'e: 'm, 'm>(
&'e mut self,
migration: &'m Migration
) -> BoxFuture<'m, Result<Duration, MigrateError>>
fn revert<'e: 'm, 'm>(
&'e mut self,
migration: &'m Migration
) -> BoxFuture<'m, Result<Duration, MigrateError>>
sourceimpl PgConnectionInfo for PgConnection
impl PgConnectionInfo for PgConnection
sourcefn server_version_num(&self) -> Option<u32>
fn server_version_num(&self) -> Option<u32>
the version number of the server in libpq
format
Auto Trait Implementations
impl !RefUnwindSafe for PgConnection
impl Send for PgConnection
impl Sync for PgConnection
impl Unpin for PgConnection
impl !UnwindSafe for PgConnection
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more