PG19: enable PG19beta1 test matrices in CI - #8616
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## pg19-support #8616 +/- ##
===============================================
Coverage ? 88.80%
===============================================
Files ? 288
Lines ? 64364
Branches ? 8093
===============================================
Hits ? 57161
Misses ? 4872
Partials ? 2331 🚀 New features to boost your workflow:
|
ihalatci
force-pushed
the
pg19-ci-test-matrices
branch
from
June 13, 2026 09:19
c5c6e65 to
ad4ccab
Compare
This was referenced Jun 13, 2026
Enable PG19beta1 across the downstream test matrices now that the build job proves it compiles: - test-citus, test-citus-failure, test-citus-cdc: add pg19_version - test-arbitrary-configs: add pg19_version to the matrix - test-pg-upgrade: add 18->19 and 16->19 upgrade pairs - params: bump pg19_version/upgrade_pg_versions 19devel -> 19beta1 - params: point image_suffix at the PG19beta1 the-process images (-dev-33b3cf5, built from citusdata/the-process#222) test-citus-upgrade is left at PG16/PG17 (no released Citus supports PG19). Closes #8615
ihalatci
force-pushed
the
pg19-ci-test-matrices
branch
from
June 16, 2026 12:15
ad4ccab to
2a197c5
Compare
onurctirtir
self-requested a review
June 18, 2026 07:19
onurctirtir
approved these changes
Jun 18, 2026
ihalatci
added a commit
that referenced
this pull request
Jun 18, 2026
Stacked PR (PR2 of the PG19 stack). **Base = `pg19-ci-test-matrices` (#8616)**, which is itself stacked on `pg19-ruleutils-port` (#8602) → `pg19-support`. Review/merge in stack order. Fixes two PG19 runtime crashes that surface in normal Citus operation (outside the regression suite): 1. **`FuncnameGetCandidates()`** gained an `int *fgc_flags` out-parameter that the callee writes to unconditionally. The compat shim passed `NULL` and crashed on every by-name function lookup (e.g. the maintenance daemon). Now passes the address of an int compound literal. 2. **`TupleDesc->firstNonCachedOffsetAttr`**: PG19 added an offset cache that `BlessTupleDesc()` / `slot_deform_heap_tuple()` now assert is populated but no longer populate themselves. `BlessTupleDesc` is wrapped to call `TupleDescFinalize()` first (no-op shim on older majors), with explicit calls added at the four sites that deform hand-built TupleDescs. Also installs `ApplicationNameAssignHook` via union access on PG19. Closes #8610 Part of #8597
ihalatci
added a commit
that referenced
this pull request
Jun 26, 2026
Stacked PR (PR3 of the PG19 stack). **Base = `pg19-runtime-fixes` (#8617)** → `pg19-ci-test-matrices` (#8616) → `pg19-ruleutils-port` (#8602) → `pg19-support`. Review/merge in stack order. PG19 enables parallel `CREATE INDEX` by default (`max_parallel_maintenance_workers` defaults to 2). Columnar's TableAM is always serial — `rs_parallel` is stored but never read, and the build path flushes pending writes, which is disallowed inside a parallel operation. This caused `CREATE INDEX` on columnar tables to fail on PG19. Three changes (all in `columnar_tableam.c`): 1. **`parallelscan_estimate`/`initialize`/`reinitialize`** now delegate to the `table_block_*` helpers, so callers that unconditionally size and initialize a `ParallelTableScanDesc` (e.g. PG19's parallel btree build) no longer abort. Columnar ignores the descriptor, so the written state is simply unused. 2. **`columnar_index_build_range_scan`** accepts a parallel scan descriptor by discarding it (`scan = NULL`) and running the serial path. 3. **`ColumnarProcessUtility`** forces `max_parallel_maintenance_workers=0` (via `NewGUCNestLevel`/`AtEOXact_GUC` around `PrevProcessUtilityHook`) for `CREATE INDEX` on a columnar AM relation, so the build runs serially. Closes #8611 Part of #8597 --------- Co-authored-by: Ibrahim Halatci <ihalatci@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ihalatci
added a commit
that referenced
this pull request
Jul 16, 2026
…8619) Stacked PR (PR3b of the PG19 stack). **Base = `pg19-columnar-index` (#8618)** → `pg19-runtime-fixes` (#8617) → `pg19-ci-test-matrices` (#8616) → `pg19-ruleutils-port` (#8602) → `pg19-support`. Review/merge in stack order. PG19 removed `get_relation_info_hook`, which is where pre-PG19 builds disable parallel query and index-only scans for columnar relations (columnar scans are always serial and cannot return tuples from an index). The Phase-1 build left a `TODO(PG19, #8614)` placeholder; this PR re-implements that suppression inside `ColumnarSetRelPathlistHook`: - forbid future parallel workers (`rel_parallel_workers = 0`, `consider_parallel = false`) and drop any already-generated partial paths; - clear each index's `canreturn` flags and strip any `IndexOnlyScan` paths that were already created (`set_rel_pathlist_hook` runs after path generation). The pre-PG19 `ColumnarGetRelationInfoHook` path is unchanged. Closes #8614 Part of #8597 --------- Co-authored-by: Ibrahim Halatci <ihalatci@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Turns on the PG19beta1 columns across the downstream Build & Test
matrices now that the
buildjob already proves PG19 compiles under-Werrorand the ruleutils port (#8602) lands the runtime/regressfixes those suites depend on.
Changes (
.github/workflows/build_and_test.yml)test-citus,test-citus-failure,test-citus-cdc: addpg19_versionto thepg_versionsarray.test-arbitrary-configs: addpg19_versiontomatrix.pg_version.test-pg-upgrade: add the18 -> 19and16 -> 19upgrade pairs(adjacent + oldest -> newest, consistent with the existing
16->17 / 17->18 / 16->18 set).
params: bumppg19_version/upgrade_pg_versionsfrom19develto
19beta1, and pointimage_suffixat the PG19beta1-enabledthe-process images (
-dev-33b3cf5, built fromAdd PG19 (19beta2) and bump PG minors via apt the-process#222).
Deliberately not changed
test-citus-upgradestays at PG16/PG17 — no released Citus binarysupports PG19, so there is nothing to upgrade from.
Dependencies
images published under
-dev-33b3cf5.runtime/regress sub-issues must be on
pg19-supportfor the newcells to pass.
Closes #8615
Part of #8597