Struct pg_async::Cluster [] [src]

pub struct Cluster { /* fields omitted */ }

A cluster of several replicated PostgreSQL nodes.

Methods

impl Cluster
[src]

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

impl Drop for Cluster
[src]

A method called when the value goes out of scope. Read more