Supported versions and limits¶
PostgreSQL¶
The root docker-compose.yml builds its Postgres image from POSTGRES_IMAGE
(default postgres:16-alpine) plus HypoPG 1.4.3, rather than pulling a fixed tag;
see Configuration – database.
| Major version | Status |
|---|---|
| 16 | Default local/Compose base; exercised in CI (Compose-based jobs, e2e.yml, release.yml smoke test) |
| 17 | Supported (extensions and migrations don't depend on version-specific features); not exercised by CI today |
| 18 | Exercised in CI via the pgvector/pgvector:pg18 testcontainer image used by Go integration tests |
The separate pqn extension needs PostgreSQL 16 or later and is
exercised against 16, 17 and 18 in CI (make verify-pqn-extension, make verify-pqn-image). The release archives include the pqn tool and
the extension files, and a PostgreSQL image with pqn is published per major version (releases).
pg_stat_statements, hypopg, and pgvector (vector) are optional extensions;
the application degrades gracefully when any is absent (see
Regressions, Suggest and rank candidates,
and Semantic search).
Go, Node, and build tools¶
| Tool | Minimum |
|---|---|
| Go | 1.26 (CI runs the toolchain pinned in .github/actions/setup-go-cgo) |
| Node.js | 22 (frontend build) |
| CGO | Required: pg_query_go is a cgo library; a C toolchain must be available |
Release platforms¶
Built by release.yml
on a tag push:
| Binary archives | Container image |
|---|---|
linux/amd64, linux/arm64, darwin/arm64, darwin/amd64 |
linux/amd64, linux/arm64 |
Each archive (pgquerynarrative-<version>-<os>-<arch>.tar.gz) bundles the server, the pqn tool and extension files,
the MCP server, migrate, the migration files, the built frontend, the entrypoint
script, and an example env file, self-contained, no clone required. Every archive,
plus checksums.txt and an SPDX SBOM, is signed with cosign (Sigstore v0.3 bundles,
cosign v3+ required to verify). The container image is built and signed the same
way; there is no separate CLI image. make build-release (local) builds only your
native OS/arch, not the full matrix. Details: Releases and versioning.
Hard limits¶
| Limit | Default | Configurable |
|---|---|---|
| Row count per query | 1,000 (soft), 10,000 (hard ceiling regardless of requested limit) |
Requested limit up to the ceiling |
| Result size | 10 MiB | QUERY_MAX_RESULT_BYTES |
| Cell size | 1 MiB | QUERY_MAX_CELL_BYTES |
| Column count | 100 | QUERY_MAX_COLUMNS |
| SQL length | 10,000 bytes | DATABASE_MAX_QUERY_LENGTH (1,000–1,000,000) |
timing_runs |
1–5 | Request field |
Report similar results |
≤ 20 | Request field |
| Share-link expiry | 1–720 hours (30 days) | expires_in_hours, default from SECURITY_SHARE_LINK_DEFAULT_HOURS |
| Verification fallback sample | 1,000 rows | Not configurable |
| Request body size | 5 MiB | SECURITY_MAX_REQUEST_BODY_BYTES |
See also¶
Configuration reference · Releases and versioning · Query execution safety