Skip to content

[release-14.0] Quote EXTRACT fields in PG16-18 ruleutils - #8809

Merged
ibrahim halatci (ihalatci) merged 4 commits into
release-14.0from
ihalatci-release-14-extract-quoting
Aug 28, 2026
Merged

ibrahim halatci (ihalatci) merged 4 commits into
release-14.0from
ihalatci-release-14-extract-quoting

Conversation

@ihalatci

@ihalatci ibrahim halatci (ihalatci) commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Backport the focused EXTRACT identifier quoting parity fix from #8804 to release-14.0 for PostgreSQL 16, 17, and 18.

  • quote EXTRACT field identifiers in the copied PG16/PG17/PG18 ruleutils implementations
  • add one shared, repeat-safe extract_deparse regression covering every supported PostgreSQL major
  • keep that new-binary assertion in multi_1_create_citus_schedule, outside the 14.2 N-1 mixed-library matrix
  • preserve the existing shard-aware Citus deparser changes

Fixes #8803.

Main PR: #8804

Validation

  • built against PostgreSQL 16.15, 17.11, and 18.6 in isolated WSL prefixes
  • pre-consolidation PG16/PG17/PG18 focused tests passed eight repetitions with whole schedule lines
  • final shared extract_deparse test passed focused PG16 validation; identical shared SQL/expected output is scheduled for PG16-18
  • PG16 and PG18 full owning schedules passed 39/39 before consolidation
  • PG17 full schedule was 188/190; both failures reproduced unchanged on pristine release-14.0 and did not touch EXTRACT output
  • Citus formatting/style checks, SQL snapshots, and git diff --check passed
  • follow-up isolates the new assertion from expected pre-fix 14.2 coordinator-library behavior in N-1 CI

CI triage

All current-version, feature, packaging, style, snapshot, and relevant N-1 checks pass. The remaining Test Citus Lib N-1 / PG18 - check-multi failure and all 32 Test flakyness failures match unmodified release-14.0 baseline run https://github.com/citusdata/citus/actions/runs/32951765361. The N-1 failure is unrelated multi_insert_select AIO DEBUG output; the flakiness gate runs broad release-vs-main history and fails pre-existing tests. codecov/project is downstream of those baseline failures.

Match PostgreSQL's CVE-2026-15741 stable-branch fix by quoting
EXTRACT field identifiers in the copied ruleutils implementations.
Add version-specific, repeat-safe regression coverage that verifies
statement-like field text cannot escape the deparsed expression.

Fixes #8803
Backport of #8804

(cherry picked from commit 13729d8)
(cherry picked from commit d4bf1ce)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.54%. Comparing base (c457188) to head (0e08c23).

Additional details and impacted files
@@               Coverage Diff                @@
##           release-14.0    #8809      +/-   ##
================================================
- Coverage         88.57%   88.54%   -0.03%     
================================================
  Files               289      289              
  Lines             64585    64584       -1     
  Branches           8121     8120       -1     
================================================
- Hits              57208    57189      -19     
- Misses             5028     5049      +21     
+ Partials           2349     2346       -3     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

ihalatci-msft and others added 3 commits August 27, 2026 18:42
Consolidate the PG16-18 regression into one shared, repeat-safe test in the N-1-excluded create-Citus schedule. This preserves supported-major coverage without expecting the pre-fix 14.2 coordinator library to pass the new assertion.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use the shared main-branch regression test verbatim so release jobs exercise identical repeat-safe output while retaining release-14's N-1 schedule isolation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The release regression harness does not echo the blank lines preserved by main. Keep the shared SQL identical while using the proven release expected output.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@ihalatci
ibrahim halatci (ihalatci) merged commit 5b1bc79 into release-14.0 Aug 28, 2026
184 of 217 checks passed
@ihalatci
ibrahim halatci (ihalatci) deleted the ihalatci-release-14-extract-quoting branch August 28, 2026 11:45
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.

2 participants