Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork221
feat: test pg_upgrade compatibility with older extension versions#1897
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
jfroche wants to merge4 commits intodevelopChoose a base branch fromfeat/test-pg-upgrade-older-version
base:develop
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Uh oh!
There was an error while loading.Please reload this page.
Conversation
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
samrose approved these changesNov 6, 2025
samrose requested changesNov 6, 2025
Collaborator
samrose left a comment
There was a problem hiding this 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
8acfa60 tof59c791Comparef59c791 to779090bCompare24d66bb to164f401Compare164f401 to450b690Compare This comment has been minimized.
This comment has been minimized.
f6f9d9b to9beb48aCompare9beb48a to218357aComparec1c4fd7 to9b659e4Compare971248f to84cfa8dCompareefd8f49 toa5fc472Compare39db71b to29a4d56Compare03dc754 toc159bb6Comparedf5545b tob9294eeCompare182d513 to1246b61CompareAdd 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 compatibilityWhen upgrading PostgreSQL versions, pg_upgrade needs access to old extensionversions sql to migrate from. This adds unsupported pg_graphql versions (those notcompilable with current PostgreSQL) as SQL-only packages, ensuring migrationpaths exist when upgrading from older PostgreSQL versions.
…pgrade compatibilityWhen upgrading PostgreSQL versions, pg_upgrade needs access to old extensionversions sql to migrate from. This adds unsupported pg_graphql versions (those notcompilable with current PostgreSQL) as SQL-only packages, ensuring migrationpaths 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 thatreference MODULE_PATHNAME without proper processing for the target version.This marks version 1.0 as not pg_upgrade compatible and filters it fromthe version test list, allowing the test to use version 2.1 (which supportsboth PG 15 and 17) for pg_upgrade validation instead. Version 1.0 remainsavailable for PG 15 installations.Version 2.1 has different schemas on PostgreSQL 15 vs 17 despite sharingthe same version number. On PG 15 it uses the older schema with blk_read_timeand blk_write_time columns, while on PG 17 it uses a newer schema withshared_blk_read_time, shared_blk_write_time, local_blk_read_time,local_blk_write_time and additional JIT statistics columns. During pg_upgradefrom PG 15 to 17, the extension version remains 2.1 without schema migrationsince no update script is generated. Fresh installations on PG 17 receivethe new schema while pg_upgrade retains the old schema, creating a testconflict as both scenarios share the same expected output file.A custom test implementation skips pg_regress validation after pg_upgradewhen no update script is generated, since the schema mismatch is expectedbehavior. This maintains full test coverage for fresh installations throughthe regular psql_17 check while validating extension version compatibilityfor pg_upgrade scenarios.
29a4d56 tod36e133CompareSign up for freeto 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.
Uh oh!
There was an error while loading.Please reload this page.
Add test to verify that all extension versions from PostgreSQL 15 can successfully upgrade to PostgreSQL 17 using pg_upgrade.
The test now validates: