From a9aec03d478791f0e842bc43a2da0cf4ae67d3c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iwo=20Strzebo=C5=84ski?= Date: Tue, 20 Oct 2026 10:18:27 +0000 Subject: [PATCH] State that PgBouncer was measured, not assumed The previous commit named PgBouncer as the pooler this client suits, from background knowledge. It is now tested: PgBouncer 1.22 in transaction mode (pool of 2, max_prepared_statements 0) passes every query that hangs through pgCat 1.2.0, multiplexes 40 concurrent parameterised queries over 2 server connections, and runs scripts/e2e-authz.sh to a full PASS with 68 checks. --- src/db/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/db/index.ts b/src/db/index.ts index 5ac2a2f..5049767 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -19,9 +19,10 @@ import * as schema from "./schema"; // so there is no subset of this app that works there. // // So `prepare: false` is necessary but nowhere near sufficient, and running -// behind pgCat is an unverified claim rather than a tested path. PgBouncer is -// the pooler this configuration is actually known to suit. Migrations go -// straight at Postgres regardless - drizzle.config.ts has no way to pass +// behind pgCat does not work. PgBouncer 1.22 in transaction mode does: the +// same queries pass, 40 concurrent ones multiplex over a pool of 2 server +// connections, and scripts/e2e-authz.sh passes all 68 checks through it. +// Migrations go straight at Postgres regardless - drizzle.config.ts has no way to pass // `prepare: false`, and drizzle-kit hung at commit for the same reason. const connectionString = process.env.DATABASE_URL; if (!connectionString) {