postgres 3.4.0-dev.1 postgres: ^3.4.0-dev.1 copied to clipboard
PostgreSQL database driver. Supports statement reuse and binary protocol and connection pooling.
PostgreSQL client #
A library for connecting to and querying PostgreSQL databases (see Postgres Protocol). This driver uses the more efficient and secure extended query format of the PostgreSQL protocol.
Usage #
Create a Connection
:
final conn = await Connection.open(Endpoint(
host: 'localhost',
database: 'postgres',
username: 'user',
password: 'pass',
));
Execute queries with execute
:
final result = await conn.execute("SELECT 'foo'");
print(result[0][0]); // first row and first field
Named parameters, returning rows as map of column names:
final result = await conn.execute(
Sql.named('SELECT * FROM a_table WHERE id=@id'),
parameters: {'id': 'xyz'},
);
print(result.first.toColumnMap());
Execute queries in a transaction:
await conn.runTx((s) async {
final rs = await s.execute('SELECT count(*) FROM foo');
await s.execute(
r'UPDATE a_table SET totals=$1 WHERE id=$2',
parameters: [rs[0][0], 'xyz'],
);
});
See the API documentation: https://pub.dev/documentation/postgres/latest/
Connection pooling #
The library supports connection pooling (and masking the connection pool as regular session executor).
Additional Capabilities #
The library supports connecting to PostgreSQL using the Streaming Replication Protocol. See Connection documentation for more info. An example can also be found at the following repository: postgresql-dart-replication-example
Other notes #
This library originally started as StableKernel's postgres library, but got a full API overhaul and partial rewrite of the internals.
Please file feature requests and bugs at the issue tracker.