pub struct ClientWrapper {
    pub statement_cache: Arc<StatementCache>,
    /* private fields */
}
Expand description

Wrapper around tokio_postgres::Client with a StatementCache.

Fields

statement_cache: Arc<StatementCache>

StatementCache of this client.

Implementations

Create a new ClientWrapper instance using the given tokio_postgres::Client.

Like tokio_postgres::Transaction::prepare(), but uses an existing Statement from the StatementCache if possible.

Like tokio_postgres::Transaction::prepare_typed(), but uses an existing Statement from the StatementCache if possible.

Methods from Deref<Target = PgClient>

Creates a new prepared statement.

Prepared statements can be executed repeatedly, and may contain query parameters (indicated by $1, $2, etc), which are set when executed. Prepared statements can only be used with the connection that created them.

Like prepare, but allows the types of query parameters to be explicitly specified.

The list of types may be smaller than the number of parameters - the types of the remaining parameters will be inferred. For example, client.prepare_typed(query, &[]) is equivalent to client.prepare(query).

Executes a statement, returning a vector of the resulting rows.

A statement may contain parameters, specified by $n, where n is the index of the parameter of the list provided, 1-indexed.

The statement argument can either be a Statement, or a raw query string. If the same statement will be repeatedly executed (perhaps with different query parameters), consider preparing the statement up front with the prepare method.

Panics

Panics if the number of parameters provided does not match the number expected.

Executes a statement which returns a single row, returning it.

Returns an error if the query does not return exactly one row.

A statement may contain parameters, specified by $n, where n is the index of the parameter of the list provided, 1-indexed.

The statement argument can either be a Statement, or a raw query string. If the same statement will be repeatedly executed (perhaps with different query parameters), consider preparing the statement up front with the prepare method.

Panics

Panics if the number of parameters provided does not match the number expected.

Executes a statements which returns zero or one rows, returning it.

Returns an error if the query returns more than one row.

A statement may contain parameters, specified by $n, where n is the index of the parameter of the list provided, 1-indexed.

The statement argument can either be a Statement, or a raw query string. If the same statement will be repeatedly executed (perhaps with different query parameters), consider preparing the statement up front with the prepare method.

Panics

Panics if the number of parameters provided does not match the number expected.

The maximally flexible version of query.

A statement may contain parameters, specified by $n, where n is the index of the parameter of the list provided, 1-indexed.

The statement argument can either be a Statement, or a raw query string. If the same statement will be repeatedly executed (perhaps with different query parameters), consider preparing the statement up front with the prepare method.

Panics

Panics if the number of parameters provided does not match the number expected.

Examples
use tokio_postgres::types::ToSql;
use futures::{pin_mut, TryStreamExt};

let params: Vec<String> = vec![
    "first param".into(),
    "second param".into(),
];
let mut it = client.query_raw(
    "SELECT foo FROM bar WHERE biz = $1 AND baz = $2",
    params,
).await?;

pin_mut!(it);
while let Some(row) = it.try_next().await? {
    let foo: i32 = row.get("foo");
    println!("foo: {}", foo);
}

Executes a statement, returning the number of rows modified.

A statement may contain parameters, specified by $n, where n is the index of the parameter of the list provided, 1-indexed.

The statement argument can either be a Statement, or a raw query string. If the same statement will be repeatedly executed (perhaps with different query parameters), consider preparing the statement up front with the prepare method.

If the statement does not modify any rows (e.g. SELECT), 0 is returned.

Panics

Panics if the number of parameters provided does not match the number expected.

The maximally flexible version of execute.

A statement may contain parameters, specified by $n, where n is the index of the parameter of the list provided, 1-indexed.

The statement argument can either be a Statement, or a raw query string. If the same statement will be repeatedly executed (perhaps with different query parameters), consider preparing the statement up front with the prepare method.

Panics

Panics if the number of parameters provided does not match the number expected.

Executes a COPY FROM STDIN statement, returning a sink used to write the copy data.

PostgreSQL does not support parameters in COPY statements, so this method does not take any. The copy must be explicitly completed via the Sink::close or finish methods. If it is not, the copy will be aborted.

Panics

Panics if the statement contains parameters.

Executes a COPY TO STDOUT statement, returning a stream of the resulting data.

PostgreSQL does not support parameters in COPY statements, so this method does not take any.

Panics

Panics if the statement contains parameters.

Executes a sequence of SQL statements using the simple query protocol, returning the resulting rows.

Statements should be separated by semicolons. If an error occurs, execution of the sequence will stop at that point. The simple query protocol returns the values in rows as strings rather than in their binary encodings, so the associated row type doesn’t work with the FromSql trait. Rather than simply returning a list of the rows, this method returns a list of an enum which indicates either the completion of one of the commands, or a row of data. This preserves the framing between the separate statements in the request.

Warning

Prepared statements should be use for any query which contains user-specified data, as they provided the functionality to safely embed that data in the request. Do not form statements via string concatenation and pass them to this method!

Executes a sequence of SQL statements using the simple query protocol.

Statements should be separated by semicolons. If an error occurs, execution of the sequence will stop at that point. This is intended for use when, for example, initializing a database schema.

Warning

Prepared statements should be use for any query which contains user-specified data, as they provided the functionality to safely embed that data in the request. Do not form statements via string concatenation and pass them to this method!

Begins a new database transaction.

The transaction will roll back by default - use the commit method to commit it.

Returns a builder for a transaction with custom settings.

Unlike the transaction method, the builder can be used to control the transaction’s isolation level and other attributes.

Constructs a cancellation token that can later be used to request cancellation of a query running on the connection associated with this client.

👎 Deprecated since 0.6.0:

use Client::cancel_token() instead

Attempts to cancel an in-progress query.

The server provides no information about whether a cancellation attempt was successful or not. An error will only be returned if the client was unable to connect to the database.

Requires the runtime Cargo feature (enabled by default).

👎 Deprecated since 0.6.0:

use Client::cancel_token() instead

Like cancel_query, but uses a stream which is already connected to the server rather than opening a new connection itself.

Clears the client’s type information cache.

When user-defined types are used in a query, the client loads their definitions from the database and caches them for the lifetime of the client. If those definitions are changed in the database, this method can be used to flush the local cache and allow the new, updated definitions to be loaded.

Determines if the connection to the server has already closed.

In that case, all future queries will fail.

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Mutably dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.