citusdata / citusdata/citus

Integrate PostgreSQL 19 features to Citus

Open
#8,782 0 comments 0 reactions 0 assignees View on GitHub
pg19_features
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.