Struct pg_async::Cluster

source ·
pub struct Cluster { /* private fields */ }
Expand description

A cluster of several replicated PostgreSQL nodes.

Implementations

Start the thread.

Setup a database connection to a [replicated] node.

Replicated clusters have several nodes usually. This method should be used for each node.

Nodes can be added on the go. E.g. add a first node, fire some queries, add a second node.

  • dsn - A keyword=value connection string.
  • mul - Pipelining support in libpq is currently limited to one batch of queries per connection, but parallelism can be increased by adding the same connection several times.

Schedule an SQL command to be executed on one of the nodes.

SQL will be run inside a transaction.

When using multiple statements, the library user must specify the exact number of top-level statements that the PostgreSQL server is going to see. For example:

  // Running two statements as a single op:
  cluster.execute ((2, "SELECT 1; SELECT 2"));
  // Running three statements:
  cluster.execute ((3, "\
    DELETE FROM foo; \
    INSERT INTO foo VALUES (1); \
    INSERT INTO foo VALUES (2)"));

To avoid SQL injection one might use the escapes provided by PgQueryPiece:

  use pg_async::PgQueryPiece::{Static as S, Plain as P, Literal as L, Bytea as B};
  cluster.execute (vec! [S ("SELECT * FROM foo WHERE bar = "), L (bar)]);

Trait Implementations

Executes the destructor for this type. Read more

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.

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.