[][src]Enum deadpool_postgres::config::RecyclingMethod

pub enum RecyclingMethod {
    Fast,
    Verified,
    Clean,
    Custom(String),
}

This enum is used to control how the connection is recycled. Attention: The current default is Verified but will be changed to Fast in the next minor release of deadpool-postgres. Please make sure to explicitly state this if you want to keep using the Verified recycling method.

Variants

Fast

Only run Client::is_closed when recycling existing connections. Unless you have special needs this is a safe choice.

Verified

Run Client::is_closed and execute a test query. This is slower but guarantees that the database connection is ready to be used. Normally Client::is_closed should be enough to filter out bad connections but under some circumstances (i.e. hard-closed network connections) it is possible that Client::is_closed returns false but the connection is dead. You will receive an error on your first query then.

Clean

Like Verified query method but instead use the following sequence of statements which guarantees a prestine connection:

This example is not tested
CLOSE ALL;
SET SESSION AUTHORIZATION DEFAULT;
RESET ALL;
UNLISTEN *;
SELECT pg_advisory_unlock_all();
DISCARD TEMP;
DISCARD SEQUENCES;

This is similar to calling DISCARD ALL but does not call DEALLOCATE ALL and DISCARD PLAN so that the statement cache is not rendered ineffective.

Custom(String)

Like Verified but allows to specify a custom SQL to be executed.

Implementations

impl RecyclingMethod[src]

pub fn query(&self) -> Option<&str>[src]

Return SQL query to be executed when recycling a connection.

Trait Implementations

impl Clone for RecyclingMethod[src]

impl Debug for RecyclingMethod[src]

impl Default for RecyclingMethod[src]

impl<'de> Deserialize<'de> for RecyclingMethod[src]

impl PartialEq<RecyclingMethod> for RecyclingMethod[src]

impl StructuralPartialEq for RecyclingMethod[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,