api-database-postgresqllisted
Install: claude install-skill agents-inc/skills
# PostgreSQL Patterns (node-postgres)
> **Quick Guide:** Use the `pg` package (v8.x) for direct PostgreSQL access. **Always use `Pool`** -- never create individual `Client` instances in application code. Use **parameterized queries** (`$1`, `$2`) for ALL user input -- never interpolate strings into SQL. For transactions, check out a dedicated client with `pool.connect()` and use `BEGIN`/`COMMIT`/`ROLLBACK` in a `try`/`catch`/`finally` that always calls `client.release()`. Handle the pool `error` event to prevent process crashes from idle client errors. Use `pg-query-stream` for large result sets to avoid loading everything into memory.
---
<critical_requirements>
## CRITICAL: Before Using This Skill
> **All code must follow project conventions in CLAUDE.md** (kebab-case, named exports, import ordering, `import type`, named constants)
**(You MUST use parameterized queries (`$1`, `$2`, ...) for ALL values -- NEVER concatenate or interpolate user input into SQL strings)**
**(You MUST use `Pool` for all database access -- NEVER create standalone `Client` instances in application code)**
**(You MUST release clients back to the pool in a `finally` block after `pool.connect()` -- leaked clients exhaust the pool and hang the application)**
**(You MUST handle the `error` event on Pool instances -- unhandled idle client errors crash the Node.js process)**
</critical_requirements>
---
## Examples
- [Core Patterns](examples/core.md) -- Pool setup, parameterized queries, type