createPostgres(options?: PostgresOptions): PostgresConnector
Creates a PostgreSQL connector with connection pooling.
Returns a connector that can be used with DB.withConnection to
acquire connections. Each call to connect() returns a new adapter with
query, execute, and stream methods. The stream method uses pg-cursor for
memory-efficient streaming of large result sets.
Connect and query with error handling
Connect and query with error handling
import { DB } from "@anabranch/db"; import { createPostgres } from "@anabranch/db-postgres"; const users = await DB.withConnection(createPostgres(), (db) => db.query("SELECT * FROM users WHERE active = ?", [true]) ).run();
Stream large result sets with concurrency
Stream large result sets with concurrency
import { DB } from "@anabranch/db"; import { createPostgres } from "@anabranch/db-postgres"; const { successes, errors } = await DB.withConnection(createPostgres(), (db) => db.stream("SELECT * FROM large_table") .withConcurrency(10) .map(row => processRow(row)) .partition() ).run();
Transactions with automatic rollback
Transactions with automatic rollback
import { DB } from "@anabranch/db"; import { createPostgres } from "@anabranch/db-postgres"; const result = await DB.withConnection(createPostgres(), (db) => db.withTransaction(async (tx) => { await tx.execute("INSERT INTO orders (user_id) VALUES (?)", [userId]); return tx.query("SELECT last_insert_rowid()"); }) ).run();
optional
options: PostgresOptions