Skip to content

Add PostgreSQL 19 support to Citus #8597

Description

Umbrella issue for PostgreSQL 19 support and compatibility in Citus.

Goal

Support PostgreSQL 19 alongside PG17 and PG18 with clean builds, runtime correctness, regression parity, upgrade coverage, and working CI/packaging.

All support work lands on pg19-support. The branch merges to main only after the supported compatibility matrix is green.

Scope boundary

This issue tracks only:

  • build and source compatibility;
  • runtime correctness and crash/data-loss prevention;
  • regression/expected-output compatibility;
  • upgrade and downgrade paths;
  • CI images, packaging, and test infrastructure required to validate PG19.

PG19 feature adoption and feature-integration work is out of scope here and is being moved to a separate umbrella. Feature issues are not sub-issues of #8597.

Beta 1 — complete

Beta 2 — complete

Merged compatibility work includes:

Beta 3 — current status

Images and branch update — complete

  • the-process image workflow succeeded: https://github.com/citusdata/the-process/actions/runs/31887872700
  • Published image suffix: -dev-c4dad8f
  • PG19 pin updated to 19beta3; upgrade image tail updated to 19beta3
  • PG19 test clusters allow the proven output plugins:
    • CDC: pgoutput, wal2json, citus
    • regression shard-split coverage: pgoutput, citus
  • Removed the Beta3-reverted Query.groupByAll access from the copied PG19 ruleutils
  • Ported PostgreSQL security fix a3832a757101 / CVE-2026-15741 for safe EXTRACT field deparsing
  • Current Beta3 compatibility/security tip: 866ab1b8951fe44f34513c1ee68ad1c9a08333d2

Beta 3 validation

Build & Test baseline:
https://github.com/citusdata/citus/actions/runs/31892579383

Integration PR run with the same head:
https://github.com/citusdata/citus/actions/runs/31892362655

The remaining functional failures are caused by PostgreSQL Beta3 psql commit d6ab88d374ab, which now drains inline COPY FROM STDIN input through the next \. after an early COPY failure. Existing Citus tests assumed the earlier psql behavior.

Open Beta 3 support blockers

Issue PR / implementation Current status Remaining action
#8780 #8784 PG19-only client gate corrected; Beta3/Beta2 check-failure 38/38 and PG16–18 compatibility green Let PR CI complete, review, merge
#8781 #8785 PG19-only alternatives; Beta3/Beta2 schedules green; packaged-client suffix correction and final matrix in progress Finish correction validation, update PR head, review, merge
#8774 packaging#1203; the-process#222 Beta3 test images published; packaging images remain missing/incomplete Review/merge #1203, publish images, rerun four packaging cells or explicitly exclude them
Integration #8753 Open pg19-supportmain PR; current red tests are #8780/#8781 Beta3 COPY compatibility plus packaging Land #8780/#8781, refresh CI, resolve/separate packaging, merge

These are compatibility/test-infrastructure items, not feature adoption.

Integration gate

Verification rule

New failures are added here only after source inspection or runtime reproduction establishes a concrete PG19 compatibility, correctness, CI, upgrade, or packaging gap. Feature-adoption proposals belong in the separate feature-integration umbrella #8782.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions