Struct PgConnection

Source
pub struct PgConnection { /* private fields */ }
Expand description

A connection to a PostgreSQL database.

Implementations§

Source§

impl PgConnection

Source

pub fn wait_until_ready(&mut self) -> Result<(), Error>

Source§

impl PgConnection

Source

pub 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.

Source

pub fn copy_out_raw<'c>( &'c mut self, statement: &str, ) -> Result<ChanStream<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:

  1. by closing the connection, or:
  2. 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 Connection for PgConnection

Source§

type Options = PgConnectOptions

Source§

fn close(self) -> Result<(), Error>

Explicitly close this database connection. Read more
Source§

fn ping(&mut self) -> Result<(), Error>

Checks if a connection to the database is still valid.
Source§

fn begin(&mut self) -> Result<Transaction<'_, Self::Database>, Error>
where Self: Sized,

Begin a new transaction or establish a savepoint within the active transaction. Read more
Source§

fn cached_statements_size(&self) -> usize

The number of statements currently cached in the connection.
Source§

fn clear_cached_statements(&mut self) -> Result<(), Error>

Removes all statements from the cache, closing them on the server if needed.
Source§

fn transaction<'a, F, R, E>(&'a mut self, callback: F) -> Result<R, E>
where F: for<'c> FnOnce(&'c mut Transaction<'_, Self::Database>) -> Result<R, E> + 'a + for<'c> Send + for<'c> Sync, Self: Sized, R: Send, E: From<Error> + Send,

Execute the function inside a transaction. Read more
Source§

fn connect(url: &str) -> Result<Self, Error>
where Self: Sized,

Establish a new database connection. Read more
Source§

fn connect_with(options: &Self::Options) -> Result<Self, Error>
where Self: Sized,

Establish a new database connection with the provided options.
Source§

impl Debug for PgConnection

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Executor for &mut PgConnection

Source§

type Database = Postgres

Source§

fn fetch_many<'q, E>( &mut self, query: E, ) -> ChanStream<Either<<Self::Database as Database>::QueryResult, <Self::Database as Database>::Row>>
where E: Execute<'q, Self::Database> + 'q,

Execute multiple queries and return the generated results as a stream from each query, in a stream.
Source§

fn fetch_optional<'q, E>( &mut self, query: E, ) -> Result<Option<<Self::Database as Database>::Row>, Error>
where E: Execute<'q, Self::Database> + 'q,

Execute the query and returns at most one row.
Source§

fn prepare_with<'q>( &mut self, sql: &'q str, parameters: &'q [<Self::Database as Database>::TypeInfo], ) -> Result<<Self::Database as HasStatement>::Statement, Error>

Prepare the SQL query, with parameter type information, to inspect the type information about its parameters and results. Read more
Source§

fn execute<'q, E>( &mut self, query: E, ) -> Result<<Self::Database as Database>::QueryResult, Error>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and return the total number of rows affected.
Source§

fn execute_many<'q, E>( &mut self, query: E, ) -> ChanStream<<Self::Database as Database>::QueryResult>
where E: 'q + Execute<'q, Self::Database>,

Execute multiple queries and return the rows affected from each query, in a stream.
Source§

fn fetch<'q, E>( &mut self, query: E, ) -> ChanStream<<Self::Database as Database>::Row>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and return the generated results as a stream.
Source§

fn fetch_all<'q, E>( &mut self, query: E, ) -> Result<Vec<<Self::Database as Database>::Row>, Error>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and return all the generated results, collected into a Vec.
Source§

fn fetch_one<'q, E>( &mut self, query: E, ) -> Result<<Self::Database as Database>::Row, Error>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and returns exactly one row.
Source§

fn prepare<'q>( &mut self, query: &'q str, ) -> Result<<Self::Database as HasStatement>::Statement, Error>

Prepare the SQL query to inspect the type information of its parameters and results. Read more
Source§

impl Executor for PgConnection

Source§

type Database = Postgres

Source§

fn fetch_many<'q, E>( &mut self, query: E, ) -> ChanStream<Either<PgQueryResult, PgRow>>
where E: Execute<'q, Self::Database> + 'q,

Execute multiple queries and return the generated results as a stream from each query, in a stream.
Source§

fn fetch_optional<'q, E>(&mut self, query: E) -> Result<Option<PgRow>, Error>
where E: Execute<'q, Self::Database> + 'q,

Execute the query and returns at most one row.
Source§

fn prepare_with<'q>( &mut self, sql: &'q str, parameters: &'q [PgTypeInfo], ) -> Result<PgStatement, Error>

Prepare the SQL query, with parameter type information, to inspect the type information about its parameters and results. Read more
Source§

fn execute<'q, E>( &mut self, query: E, ) -> Result<<Self::Database as Database>::QueryResult, Error>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and return the total number of rows affected.
Source§

fn execute_many<'q, E>( &mut self, query: E, ) -> ChanStream<<Self::Database as Database>::QueryResult>
where E: 'q + Execute<'q, Self::Database>,

Execute multiple queries and return the rows affected from each query, in a stream.
Source§

fn fetch<'q, E>( &mut self, query: E, ) -> ChanStream<<Self::Database as Database>::Row>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and return the generated results as a stream.
Source§

fn fetch_all<'q, E>( &mut self, query: E, ) -> Result<Vec<<Self::Database as Database>::Row>, Error>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and return all the generated results, collected into a Vec.
Source§

fn fetch_one<'q, E>( &mut self, query: E, ) -> Result<<Self::Database as Database>::Row, Error>
where E: 'q + Execute<'q, Self::Database>,

Execute the query and returns exactly one row.
Source§

fn prepare<'q>( &mut self, query: &'q str, ) -> Result<<Self::Database as HasStatement>::Statement, Error>

Prepare the SQL query to inspect the type information of its parameters and results. Read more
Source§

impl<'c> From<&'c mut PgConnection> for MaybePoolConnection<'c, Postgres>

Source§

fn from(v: &'c mut PgConnection) -> Self

Converts to this type from the input type.
Source§

impl PgConnectionInfo for PgConnection

Source§

fn server_version_num(&self) -> Option<u32>

the version number of the server in libpq format

Auto Trait Implementations§

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, 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<'c, T> PgExecutor<'c> for T
where T: Executor<Database = Postgres>,