| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Create common infrastructure for cross-version upgrade testing. |
| Date: | 2023-01-17 01:37:09 |
| Message-ID: | [email protected] |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Create common infrastructure for cross-version upgrade testing.
To test pg_upgrade across major PG versions, we have to be able to
modify or drop any old objects with no-longer-supported properties,
and we have to be able to deal with cosmetic changes in pg_dump output.
Up to now, the buildfarm and pg_upgrade's own test infrastructure had
separate implementations of the former, and we had nothing but very
ad-hoc rules for the latter (including an arbitrary threshold on how
many lines of unchecked diff were okay!). This patch creates a Perl
module that can be shared by both those use-cases, and adds logic
that deals with pg_dump output diffs in a much more tightly defined
fashion.
This largely supersedes previous efforts in commits 0df9641d3,
9814ff550, and 62be9e4cd, which developed a SQL-script-based solution
for the task of dropping old objects. There was nothing fundamentally
wrong with that work in itself, but it had no basis for solving the
output-formatting problem. The most plausible way to deal with
formatting is to build a Perl module that can perform editing on the
dump files; and once we commit to that, it makes more sense for the
same module to also embed the knowledge of what has to be done for
dropping old objects.
Back-patch versions of the helper module as far as 9.2, to
support buildfarm animals that still test that far back.
It's also necessary to back-patch PostgreSQL/Version.pm,
because the new code depends on that. I fixed up pg_upgrade's
002_pg_upgrade.pl in v15, but did not look into back-patching
it further than that.
Tom Lane and Andrew Dunstan
Discussion: https://postgr.es/m/[email protected]
Branch
------
REL_13_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/3f0b9df88bb33ec52b0af8b11295d256d2011e29
Modified Files
--------------
src/bin/pg_upgrade/upgrade_adapt.sql | 80 -----
src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm | 479 +++++++++++++++++++++++++
src/test/perl/PostgreSQL/Version.pm | 167 +++++++++
3 files changed, 646 insertions(+), 80 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David Rowley | 2023-01-17 03:37:31 | pgsql: Don't presort ORDER BY/DISTINCT Aggrefs with volatile functions |
| Previous Message | Peter Geoghegan | 2023-01-16 17:35:23 | pgsql: Tighten up VACUUM's approach to setting VM bits. |