function createPostgres
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.

Examples

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

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

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();

Parameters

optional
options: PostgresOptions

Return Type