Skip to content

Reconnect 13.4-1 as an upgrade node for the 14.x path#8650

Open
ihalatci wants to merge 1 commit into
release-14.0from
ihalatci-release-14-sql-gap-fix
Open

Reconnect 13.4-1 as an upgrade node for the 14.x path#8650
ihalatci wants to merge 1 commit into
release-14.0from
ihalatci-release-14-sql-gap-fix

Conversation

@ihalatci

@ihalatci ihalatci commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Problem

A GA''d 13.4 cluster cannot ALTER EXTENSION citus UPDATE into the 14.x line. 13.4-1 has no incident SQL scripts, so it is not a node in the extension update graph and Postgres path-finding fails with "no update path".

multi_extension upgrade tests do not catch this because they only walk edges that are present in the graph.

Fix

Reconnect 13.4-1 as a node by adding two empty version-bump scripts, byte-identical to the pattern already shipped on release-13.2:

  • src/backend/distributed/sql/citus--13.3-1--13.4-1.sql (forward)
  • src/backend/distributed/sql/downgrades/citus--13.4-1--13.3-1.sql (downgrade)

Plus a no-op multi_extension test excursion (13.3 -> 13.4 -> 13.3) asserting the reconnection is a pure no-op.

The Makefile auto-globs sql/*.sql and sql/downgrades/*.sql, so the new scripts install with no Makefile change.

Verification

  • Both SQL scripts are blob-hash identical to origin/release-13.2.
  • multi_extension regression: clean pass, no diffs.
  • The excursion leaves prev_objects at 13.3, so all downstream .out output is provably unaffected -> (0 rows).

Scope: 4 files, +19 lines -- only the 13.4-1 reconnection; no other edits.

A released 13.4 cluster could not ALTER EXTENSION citus UPDATE into the 14.x line because 13.4-1 had no incident SQL scripts, so it was not a node in the extension update graph and Postgres path-finding failed with "no update path". Add empty version-bump scripts (byte-identical mirrors of release-13.2's) so 13.4-1 becomes a resolvable node: sql/citus--13.3-1--13.4-1.sql and sql/downgrades/citus--13.4-1--13.3-1.sql. Add a no-op 13.3->13.4->13.3 excursion to multi_extension; it leaves prev_objects at 13.3 so print_extension_changes() returns (0 rows) and downstream output is unaffected. Verified by a clean multi_extension regression on release-14.0.

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

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.62%. Comparing base (152fdf4) to head (6492c68).
⚠️ Report is 3 commits behind head on release-14.0.

Additional details and impacted files
@@               Coverage Diff                @@
##           release-14.0    #8650      +/-   ##
================================================
- Coverage         88.63%   88.62%   -0.02%     
================================================
  Files               288      288              
  Lines             64115    64120       +5     
  Branches           8045     8045              
================================================
- Hits              56831    56826       -5     
- Misses             4965     4971       +6     
- Partials           2319     2323       +4     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ihalatci ihalatci added this to the 14.2 & 13.4 milestone Jul 8, 2026
@ihalatci
ihalatci marked this pull request as ready for review July 16, 2026 11:29
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