Extracting cross-version-upgrade knowledge from buildfarm client
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@lists.postgresql.org
Cc: Andrew Dunstan <andrew@dunslane.net>
Date: 2023-01-14T00:48:16Z
Lists: pgsql-hackers
Attachments
- adjustupgrade.patch (text/x-diff) patch
- xversion.patch (text/x-diff) patch
This is a followup to the discussion at [1], in which we agreed that it's time to fix the buildfarm client so that knowledge about cross-version discrepancies in pg_dump output can be moved into the community git tree, making it feasible for people other than Andrew to fix problems when we change things of that sort. The idea is to create helper files that live in the git tree and are used by the BF client to perform the activities that are likely to need tweaking. Attached are two patches, one for PG git and one for the buildfarm client, that create a working POC for this approach. I've only carried this as far as making a helper file for HEAD, but I believe that helper files for the back branches would mostly just need to be cut-down versions of this one. I've tested it successfully with cross-version upgrade tests down to 9.3. (9.2 would need some more work, and I'm not sure if it's worth the trouble --- are we going to retire 9.2 soon?) I'm a very mediocre Perl programmer, so I'm sure there are stylistic and other problems, but I'm encouraged that this seems feasible. Also, I wonder if we can't get rid of src/bin/pg_upgrade/upgrade_adapt.sql in favor of using this code. I tried to write adjust_database_contents() in such a way that it could be pointed at a database by some other Perl code that's not the buildfarm client. regards, tom lane [1] https://www.postgresql.org/message-id/951602.1673535249%40sss.pgh.pa.us
Commits
-
Compare only major versions in AdjustUpgrade.pm
- 6061adedf53c 17.0 landed
- 28ce9d51f908 16.0 landed
-
Get rid of the "new" and "old" entries in a view's rangetable.
- 47bb9db75996 16.0 landed
-
Create common infrastructure for cross-version upgrade testing.
- 52585f8f072a 16.0 landed
- f02a75222821 11.19 landed
- ddd89df26b97 10 (unreleased) landed
- bfa3d2790664 9.5 (unreleased) landed
- a2091843f69e 9.2 (unreleased) landed
- 8e7398dce55b 14.7 landed
- 4bcf3521290a 9.4 (unreleased) landed
- 4ad0896bca92 15.2 landed
- 3f0b9df88bb3 13.10 landed
- 3911fd55f53a 9.6 (unreleased) landed
- 2e8bedc3d68c 9.3 (unreleased) landed
- 0e4d38100acb 12.14 landed