Integrate PostgreSQL 19 features to Citus
- Dominant language
- C
- Stars
- 12.8k
- Forks
- 794
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 31
Description
Umbrella for the work required to make PostgreSQL 19's new features behave correctly under Citus, and to adopt the ones that benefit distributed execution.
This is scoped to *feature* work. Build, compatibility and CI stabilisation for PG19 are tracked separately in #8597. This feature umbrella is independent and is not a sub-issue of the support umbrella.
## Background
PG19's feature set was reviewed against Citus and each feature classified into one of three buckets:
- **Just works** - the feature is planner- or executor-local and needs no distributed handling.
- **Needs Citus modification** - the feature changes parse trees, deparse output, planner hooks or storage behaviour in ways Citus must handle explicitly. Everything below is in this bucket.
- **Not relevant** - single-node-only features with no distributed analogue.
The items below are the "needs Citus modification" set. They split into four groups.
## Guardrails: reject or error explicitly rather than silently mishandle
| Issue | PR | Local solution / status | Remaining action |
|---|---|---|---|
| #8756 | — | Verified implementation plan only: reject `REPACK CONCURRENTLY` after core-compatible lock lookup; no commit | Approve implementation, add second-session lock regression, review/PR |
| #8758 | — | Verified fail-closed behavior and subtype-specific error/test plan; no commit | Approve implementation, cross-version tests, review/PR |
| #8761 | #8763 | Reviewed PG19-gated rejection implemented and PR open | Review and merge |
## Correctness: distributed behavior fixes
| Issue | PR | Local solution / status | Remaining action |
|---|---|---|---|
| #8759 | #8766, #8767 | Both reviewed fixes published: shared REVOKE ordering and PG19 table grantor propagation | Review/merge both; close issue only after both land |
| #8760 | #8765 | Reviewed JSON COPY coordinator-reroute/protocol fix published | Review and merge |
| #8762 | — | Root cause and structural `ROW(alias.*)::logical_type` plan verified; no commit | Approve implementation across supported ruleutils copies, cross-version tests, review/PR |
## Adoption and longer-term design
| Issue | PR | Local solution / status | Remaining action |
|---|---|---|---|
| #8770 | — | Local 3-file implementation tested: `INSTRUMENT_IO` in `ExplainWorkerPlan()` plus remote IO option; no published commit | Produce clean commit SHA, release review, approval, PR |
| #8771 | — | No active defect reproduced; 30/30 plan/result probes green; watch item only | Decide close vs retain watch/detection item; no code currently justified |
| #8772 | — | Design completed, implementation deferred; fixed per-node slot ceiling requires admission control | Architecture/design approval before any implementation |
| #8773 | — | AIO adoption measured and deferred; no local implementation | Decide close/defer; future work needs benchmark-backed design; track cache-pollution defect separately |
## Notes on PR linkage
PRs targeting `pg19-support` rather than the default branch do not automatically close issues. Associations and remaining actions are recorded explicitly above.
Contributor guide
Research direction
Start with the linked sub-issues (#8756, #8758–#8762, #8770–#8773) and their status summaries; this umbrella does not specify an individual change. The table identifies remaining work, including reviews, implementation and design decisions, so choose a sub-issue before starting. Done means completing that sub-issue’s stated remaining action; several entries need maintainer approval or design first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, postgresql
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 20/100