PostgreSQL 14-18 Release Matrix — 2026-07-14

Objective

Verify the supported PostgreSQL-major contract and the completed GQL write correctness matrix in isolated PostgreSQL 14, 15, 16, 17, and 18 clusters.

Environment

  • Docker Desktop 28.3.3 on arm64 macOS
  • Rust 1.96.0
  • cargo-pgrx 0.19.1
  • PostgreSQL package versions 14.23, 15.18, 16.14, 17.10, and 18.4
  • A checksum-pinned sfw 1.13.1 binary guarded the cargo-pgrx installation performed while building the disposable test image.

Command

Run from graph/:

PG_VERSIONS='14 15 16 17 18' \
  RUN_PGRX_SQL=1 \
  RUN_GQL_WRITE_MATRIX=1 \
  ./tests/heavy/run_pg_matrix_docker.sh

Results

PostgreSQL Rust release tests pgrx tests Full isolation Persisted isolation MERGE race Relationship race Stale-write race
14.23 718 passed, 1 ignored 981 passed, 1 ignored PASS PASS PASS PASS PASS
15.18 718 passed, 1 ignored 981 passed, 1 ignored PASS PASS PASS PASS PASS
16.14 718 passed, 1 ignored 981 passed, 1 ignored PASS PASS PASS PASS PASS
17.10 718 passed, 1 ignored 981 passed, 1 ignored PASS PASS PASS PASS PASS
18.4 718 passed, 1 ignored 981 passed, 1 ignored PASS PASS PASS PASS PASS

The ignored Rust/pgrx test is the manually invoked million-node scale test. The matrix finished with both supported-major summaries passing.

Environment Notes

The final authoritative run used isolated temporary clusters and Unix sockets inside one disposable image. Image construction uses resumable, checksum- verified downloads and BuildKit caches to tolerate transient network failures. The release Rust leg enforces latency contracts; pgrx debug builds retain the same correctness assertions without applying release-only wall-clock limits. Planner index assertions use a selective production-shaped fixture so their result does not depend on the small-table cost choice made by older PostgreSQL majors.