Pool<L> class abstract

A connection pool that may select endpoints based on the requested locality L of the data.

A data locality can be an arbitrary value that the pool's EndpointSelector understands, and may return a connection based on, e.g:

  • an action, which applies to different database or user,
  • a tenant, which may be specified for multi-tenant applications,
  • a table and key, which may be specified for distributed databases (e.g. CockroachDB) for selecting the node that is the leader for the specified data range.
  • a primary/replica status, whic may be specified for cases where stale or read-only data is acceptable

This interface implements Session and SessionExecutor as a convenience API that internally acquires a pooled connection via withConnection for each operation.

Constructors

Pool.withEndpoints(List<Endpoint> endpoints, {PoolSettings? settings})
Creates a connection pool from a fixed list of endpoints.
factory
Pool.withSelector(EndpointSelector<L> selector, {PoolSettings? settings})
factory
Pool.withUrl(String connectionString)
Creates a new pool where the endpoint and the settings are encoded as an URL as postgresql://[userspec@][hostspec][/dbname][?paramspec]
factory

Properties

closed → Future<void>
A future that completes when isOpen turns false.
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
isOpen → bool
Whether this connection is currently open.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

close({bool force = false}) → Future<void>
Closes this session, cleaning up resources and forbiding further calls to prepare and execute.
inherited
execute(Object query, {Object? parameters, bool ignoreRows = false, QueryMode? queryMode, Duration? timeout}) → Future<Result>
Executes the query with the given parameters.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
prepare(Object query) → Future<Statement>
Prepares a reusable statement from a query.
inherited
run<R>(Future<R> fn(Session session), {SessionSettings? settings, L? locality}) → Future<R>
Obtains a Session capable of running statements and calls fn with it.
override
runTx<R>(Future<R> fn(TxSession session), {TransactionSettings? settings, L? locality}) → Future<R>
Obtains a Session running in a transaction and calls fn with it.
override
toString() → String
A string representation of this object.
inherited
withConnection<R>(Future<R> fn(Connection connection), {ConnectionSettings? settings, L? locality}) → Future<R>
Acquires a connection from this pool, opening a new one if necessary, and calls fn with it.

Operators

operator ==(Object other) → bool
The equality operator.
inherited