Skip to content

Conversation

@jfroche
Copy link
Collaborator

@jfroche jfroche commented Nov 6, 2025

Add test to verify that all extension versions from PostgreSQL 15 can successfully upgrade to PostgreSQL 17 using pg_upgrade.

The test now validates:

  • Each PG 15 extension version can be upgraded to PG 17
  • Extension update scripts are properly generated during upgrade
  • Version handling works correctly with and without update scripts
  • Final extension versions match expected values after upgrade

@samrose samrose self-requested a review November 6, 2025 20:29
Copy link
Collaborator

@samrose samrose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Will just need to test before we merge it

@jfroche jfroche marked this pull request as ready for review November 6, 2025 22:57
@jfroche jfroche requested review from a team as code owners November 6, 2025 22:57
@jfroche jfroche force-pushed the feat/test-pg-upgrade-older-version branch from 8acfa60 to f59c791 Compare November 7, 2025 16:33
@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch from f59c791 to 779090b Compare November 11, 2025 16:17
@yvan-sraka yvan-sraka self-assigned this Nov 11, 2025
@yvan-sraka yvan-sraka requested a review from samrose November 11, 2025 16:17
@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch 2 times, most recently from 24d66bb to 164f401 Compare November 19, 2025 10:13
@yvan-sraka yvan-sraka marked this pull request as draft November 19, 2025 21:13
@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch from 164f401 to 450b690 Compare November 21, 2025 10:38
@yvan-sraka yvan-sraka marked this pull request as ready for review November 21, 2025 13:03
@blacksmith-sh

This comment has been minimized.

@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch from f6f9d9b to 9beb48a Compare November 25, 2025 16:11
@yvan-sraka yvan-sraka changed the base branch from develop to custom-github-runners November 25, 2025 16:11
@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch from 9beb48a to 218357a Compare November 25, 2025 17:46
@jfroche jfroche force-pushed the custom-github-runners branch from c1c4fd7 to 9b659e4 Compare November 25, 2025 22:56
@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch 2 times, most recently from 971248f to 84cfa8d Compare November 25, 2025 23:28
@yvan-sraka yvan-sraka force-pushed the custom-github-runners branch from efd8f49 to a5fc472 Compare November 26, 2025 09:02
@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch 2 times, most recently from 39db71b to 29a4d56 Compare November 26, 2025 11:33
@yvan-sraka yvan-sraka force-pushed the custom-github-runners branch 2 times, most recently from 03dc754 to c159bb6 Compare December 1, 2025 10:01
@jfroche jfroche force-pushed the custom-github-runners branch 3 times, most recently from df5545b to b9294ee Compare December 2, 2025 21:26
@jfroche jfroche force-pushed the custom-github-runners branch 24 times, most recently from 182d513 to 1246b61 Compare December 8, 2025 13:43
Base automatically changed from custom-github-runners to develop December 8, 2025 17:15
jfroche and others added 4 commits December 11, 2025 17:43
Add test to verify that all extension versions from PostgreSQL 15 can successfully upgrade to PostgreSQL 17 using pg_upgrade.

The test now validates:

- Each PG 15 extension version can be upgraded to PG 17
- Extension update scripts are properly generated during upgrade
- Version handling works correctly with and without update scripts
- Final extension versions match expected values after upgrade
…ade compatibility

When upgrading PostgreSQL versions, pg_upgrade needs access to old extension
versions sql to migrate from. This adds unsupported pg_graphql versions (those not
compilable with current PostgreSQL) as SQL-only packages, ensuring migration
paths exist when upgrading from older PostgreSQL versions.
…pgrade compatibility

When upgrading PostgreSQL versions, pg_upgrade needs access to old extension
versions sql to migrate from. This adds unsupported pg_graphql versions (those not
compilable with current PostgreSQL) as SQL-only packages, ensuring migration
paths exist when upgrading from older PostgreSQL versions.
When upgrading from PostgreSQL 15 to 17, pg_stat_monitor version 1.0
(PG 15-only) cannot be migrated as it uses .sql.in template files that
reference MODULE_PATHNAME without proper processing for the target version.

This marks version 1.0 as not pg_upgrade compatible and filters it from
the version test list, allowing the test to use version 2.1 (which supports
both PG 15 and 17) for pg_upgrade validation instead. Version 1.0 remains
available for PG 15 installations.

Version 2.1 has different schemas on PostgreSQL 15 vs 17 despite sharing
the same version number. On PG 15 it uses the older schema with blk_read_time
and blk_write_time columns, while on PG 17 it uses a newer schema with
shared_blk_read_time, shared_blk_write_time, local_blk_read_time,
local_blk_write_time and additional JIT statistics columns. During pg_upgrade
from PG 15 to 17, the extension version remains 2.1 without schema migration
since no update script is generated. Fresh installations on PG 17 receive
the new schema while pg_upgrade retains the old schema, creating a test
conflict as both scenarios share the same expected output file.

A custom test implementation skips pg_regress validation after pg_upgrade
when no update script is generated, since the schema mismatch is expected
behavior. This maintains full test coverage for fresh installations through
the regular psql_17 check while validating extension version compatibility
for pg_upgrade scenarios.
@yvan-sraka yvan-sraka force-pushed the feat/test-pg-upgrade-older-version branch from 29a4d56 to d36e133 Compare December 12, 2025 08:58
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.

4 participants