Feat: Postgresql 18#2051
Conversation
806f0cd to
70544b1
Compare
…as pg_tle and pgaudit, due to PG C lib changes that break compiliation
…if the original file fails)
PostgreSQL Extension Dependency Analysis: PR #2051
SummaryThe following extensions have dependencies that underwent MAJOR version updates:
Full Analysis ResultsPostgreSQL 15 Extension DependenciesExtension: hypopg
Raw Dependency TreeExtension: pg_graphql
Raw Dependency TreeExtension: pgroonga
Raw Dependency TreePostgreSQL 17 Extension DependenciesExtension: hypopg
Raw Dependency TreeExtension: pg_graphql
Raw Dependency TreeExtension: pgroonga
Raw Dependency TreeExtension: plpgsql_check
Raw Dependency TreeOrioleDB 17 Extension Dependencies |
There was a problem hiding this comment.
Pull request overview
Adds PostgreSQL 18 support across the Nix build, extension packaging, checks, and developer tooling, along with updated expected test artifacts and a new PG18 Docker image.
Changes:
- Introduces PG18 packages/overlays (psql_18, psql_18_cli) and wires them into start/run tooling and check harnesses.
- Updates extension compatibility metadata (
nix/ext/versions.json) and hardens extension selection with assertions when no supported versions exist. - Adds/updates PG18-specific test fixtures and schema baseline artifacts (including a new
migrations/schema-18.sql) and documentation for adding new majors.
Reviewed changes
Copilot reviewed 54 out of 54 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| nix/tools/run-server.sh.in | Add VERSION=18 support and adjust config tweaks for 17/18. |
| nix/tests/sql/roles.sql | Exclude new built-in role from role listing output. |
| nix/tests/expected/security_1.out | Add expected output for security test. |
| nix/tests/expected/roles.out | Update expected roles output for new excluded role. |
| nix/tests/expected/plpgsql-check_1.out | Add expected output for plpgsql_check test. |
| nix/tests/expected/docs-cascades-deletes_1.out | Add expected output for cascades deletes doc test. |
| nix/packages/start-client.nix | Add --version 18 client selection. |
| nix/packages/postgres.nix | Add psql_18 / psql_18_cli and select extension sets for 18. |
| nix/packages/lib.nix | Export PSQL18_BINDIR for templates/scripts. |
| nix/packages/default.nix | Plumb psql_18 into package wiring. |
| nix/packages/dbmate-tool.nix | Add 18 to help text and dump flag conditional. |
| nix/overlays/default.nix | Expose postgresql_18 via overlay inherit list. |
| nix/ext/wrappers/default.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/wal2json.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/versions.json | Add/expand extension versions supporting PG18. |
| nix/ext/vault.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/timescaledb.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/tests/lib.nix | Adjust version-gated config mutations for PG17+ behavior. |
| nix/ext/supautils.nix | Bump supautils to v3.1.0 for compatibility. |
| nix/ext/rum.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/postgis.nix | Assert non-empty supported version list and tweak build flags. |
| nix/ext/plv8/default.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/plpgsql-check.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgvector.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgsql-http.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgsodium.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgrouting/default.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgroonga/groonga.nix | Bump groonga version/hash. |
| nix/ext/pgroonga/fix-cmake-install-path.patch | Update patch hunk location for new groonga version. |
| nix/ext/pgroonga/do-not-use-vendored-libraries.patch | Update vendoring-disabling patch for new groonga layout. |
| nix/ext/pgroonga/default.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgmq/default.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgjwt.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pgaudit.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_tle.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_stat_monitor.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_repack.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_plan_filter.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_partman.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_net.nix | Move default control/symlink generation to latest-version build. |
| nix/ext/pg_jsonschema/default.nix | Extend upgrade-script generation version list; assert non-empty. |
| nix/ext/pg_hashids.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_graphql/default.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg_cron/default.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/pg-safeupdate.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/index_advisor.nix | Assert non-empty supported version list before lib.last. |
| nix/ext/hypopg.nix | Assert non-empty supported version list before lib.last. |
| nix/docs/new-major-postgres.md | Expand documentation for adding a new major PG version. |
| nix/config.nix | Add PostgreSQL 18 version/hash configuration. |
| nix/checks.nix | Add PG18 detection, ports, harness entries, and exported packages. |
| migrations/schema-18.sql | Add schema baseline dump file for version 18 (new). |
| ansible/tasks/stage2-setup-postgres.yml | Apply config adjustments for psql_18 builds. |
| README.md | Update supported versions list to include 18. |
| Dockerfile-18 | Add a dedicated Dockerfile for PG18 image build. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if majorVersion >= "17" || majorVersion >= "orioledb-17" then | ||
| '' |
PostgreSQL Package Dependency Analysis: PR #2051
SummaryThe following packages underwent MAJOR version updates:
Full Analysis ResultsPostgreSQL 15 Dependency ChangesExtracting PostgreSQL 15 dependencies...
Runtime Closure Size
Raw Dependency ClosurePostgreSQL 17 Dependency ChangesExtracting PostgreSQL 17 dependencies...
Runtime Closure Size
Raw Dependency Closure |
|
hi @encima @fruzitent how is it going? can't wait to see it. |
|
How's this going @encima @fruzitent ? |
|
Hello... ? |
We're going to be starting a different PR on this soon. We'll publish a timeline to completion once we're ready. Thanks so much for your interest! |
|
@samrose Ah, alright, well if you need help with anything, don't hesitate |
What kind of change does this PR introduce?
Feature
What is the current behavior?
Support for PG 18
What is the new behavior?
Updated extensions to work with pg lib changes
Additional context
Add any other context or screenshots.