Struct sqlx_core::postgres::PgConnection [−][src]
pub struct PgConnection { /* fields omitted */ }
Expand description
A connection to a PostgreSQL database.
Implementations
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.
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
type Connection = &'c mut <Postgres as Database>::Connection
type Options = PgConnectOptions
Explicitly close this database connection. Read more
Checks if a connection to the database is still valid.
Begin a new transaction or establish a savepoint within the active transaction. Read more
The number of statements currently cached in the connection.
Removes all statements from the cache, closing them on the server if needed. Read more
Execute the function inside a transaction. Read more
Establish a new database connection. Read more
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>,
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
Execute the query and returns at most one row.
fn 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
Execute the query and return the total number of rows affected.
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>,
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.
Execute the query and return the generated results as a stream.
Execute the query and return all the generated results, collected into a Vec
.
Execute the query and returns exactly one row.
fn list_applied_migrations(
&mut self
) -> BoxFuture<'_, Result<Vec<AppliedMigration>, MigrateError>>
the version number of the server in libpq
format