Skip to content

PG19: handle property graph dependency object classes - #8733

Merged
ibrahim halatci (ihalatci) merged 1 commit into
pg19-supportfrom
ihalatci-fix-pg19-property-graph
Aug 10, 2026
Merged

ibrahim halatci (ihalatci) merged 1 commit into
pg19-supportfrom
ihalatci-fix-pg19-property-graph

Conversation

@ihalatci

@ihalatci ibrahim halatci (ihalatci) commented Aug 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • recognize PostgreSQL 19 property-graph label and property object classes in the compatibility mapper
  • keep property-graph objects on Citus's safe unsupported-dependency path
  • gate the new catalogs and mappings to PostgreSQL 19+

Validation

  • PostgreSQL 19beta2: clean build and targeted privileges regression pass; original object-class 6470/6473 errors no longer reproduce
  • PostgreSQL 17.10: all 225 vanilla tests pass
  • PostgreSQL 18.4: all 231 vanilla tests pass

Fixes #8729

Fixes #8729.

Upstream provenance

The property-graph catalogs and relation OIDs 6470/6473 predate PG19 Beta1. Beta2-range PostgreSQL commit 9d8cdcbe0c8a began recording graph-label/property dependencies, which exposed those pre-existing ObjectAddress.classId values to Citus and triggered the stale compatibility mapper. Thus the omission was latent in Beta1 and directly exposed by Beta2 dependency behavior.

@codecov

codecov Bot commented Aug 8, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.75%. Comparing base (ff8f1f8) to head (7718954).
⚠️ Report is 26 commits behind head on pg19-support.

Additional details and impacted files
@@               Coverage Diff                @@
##           pg19-support    #8733      +/-   ##
================================================
- Coverage         88.80%   88.75%   -0.06%     
================================================
  Files               288      289       +1     
  Lines             64416    65006     +590     
  Branches           8100     8191      +91     
================================================
+ Hits              57206    57693     +487     
- Misses             4873     4952      +79     
- Partials           2337     2361      +24     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@ihalatci
ibrahim halatci (ihalatci) force-pushed the ihalatci-fix-pg19-property-graph branch from 323d1ae to 7718954 Compare August 10, 2026 04:14
@ihalatci
ibrahim halatci (ihalatci) merged commit be8f0a2 into pg19-support Aug 10, 2026
182 of 195 checks passed
@ihalatci
ibrahim halatci (ihalatci) deleted the ihalatci-fix-pg19-property-graph branch August 10, 2026 08:18
Onur Tirtir (onurctirtir) pushed a commit that referenced this pull request Sep 25, 2026
DESCRIPTION: Align Citus compatibility code with PostgreSQL 19 beta4

## Summary

- use the green PostgreSQL 19 beta4 development images from
citusdata/the-process#250 (`-dev-64e776f`)
- update PG19 CI and nightly cassert matrices from `19beta3` to
`19beta4`
- remove property-graph compatibility reverted upstream between
`REL_19_BETA3` and `REL_19_BETA4`
- preserve the remaining PostgreSQL 19 compatibility work already merged
on `main`

## Upstream delta

Replayed the applicable parts of PostgreSQL's
`REL_19_BETA3..REL_19_BETA4` `src/backend/utils/adt/ruleutils.c` delta
onto Citus's curated `ruleutils_19.c`: removed the five `pg_propgraph_*`
includes, graph-pattern deparse helpers, and `RTE_GRAPH_TABLE` branches
while preserving Citus-specific hooks and shard-aware deparsing.

The Beta 4 build exposed two additional removed upstream symbols. This
PR removes only their corresponding compatibility branches:

- `OBJECT_PROPGRAPH` in `pg_get_object_address_17_18.c`
- `RTE_GRAPH_TABLE` in `citus_nodefuncs.c`

## Compatibility audit

Removes #8733. Retains #8622, #8624, #8741, #8784, #8785, and #8795
because their underlying PostgreSQL 19 behavior remains in beta4.
Pending PG19 feature PRs are unchanged.

Closes #8597.

## Validation

- built PostgreSQL `REL_19_BETA4` from source under native Ubuntu-22.04
WSL
- `PG_CONFIG=<beta4-prefix>/bin/pg_config ./configure`
- `make -j"$(nproc)"`
- `make install -j"$(nproc)"`
- `src/test/regress/citus_tests/run_test.py pg19` — all 7 tests passed
- `citus_indent --quiet --check` — passed
- `git diff --check` — passed in Windows and WSL checkouts
- repository-wide removed-symbol search — no stale matches

`make check-style` reaches the existing Python isort gate and reports
`src/test/regress/citus_tests/test/test_run_test.py`, which is unchanged
from `origin/main`. The C formatting check for this diff passes. Full
Build & Test CI is required.

---------

Co-authored-by: Ibrahim Halatci <ihalatci@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PG19: handle property graph dependency object classes

3 participants