Re: Test to dump and restore objects left behind by regression

From: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Peter Eisentraut <peter(at)eisentraut(dot)org>, Daniel Gustafsson <daniel(at)yesql(dot)se>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: Test to dump and restore objects left behind by regression
Date: 2024-07-08 10:29:30
Message-ID: CAExHW5sja9YqZhin+UOp4DuHJwmgZc86YGDkXeEEW+HVyCvRnA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jul 5, 2024 at 10:59 AM Michael Paquier <michael(at)paquier(dot)xyz> wrote:

> On Fri, Jun 28, 2024 at 06:00:07PM +0530, Ashutosh Bapat wrote:
> > Here's a description of patches and some notes
> > 0001
> > -------
> > 1. Per your suggestion the logic to handle dump output differences is
> > externalized in PostgreSQL::Test::AdjustDump. Instead of eliminating
> those
> > differences altogether from both the dump outputs, the corresponding DDL
> in
> > the original dump output is adjusted to look like that from the restored
> > database. Thus we retain full knowledge of what differences to expect.
> > 2. I have changed the name filter_dump to filter_dump_for_upgrade so as
> to
> > differentiate between two adjustments 1. for upgrade and 2. for
> > dump/restore. Ideally the name should have been
> adjust_dump_for_ugprade() .
> > It's more of an adjustment than filtering as indicated by the function it
> > calls. But I haven't changed that. The new function to adjust dumps for
> > dump and restore tests is named adjust_dump_for_restore() however.
> > 3. As suggested by Daniel upthread, the test for dump and restore happens
> > before upgrade which might change the old cluster thus changing the state
> > of objects left behind by regression. The test is not executed if
> > regression is not used to create the old cluster.
> > 4. The code to compare two dumps and report differences if any is moved
> to
> > its own function compare_dumps() which is used for both upgrade and
> > dump/restore tests.
> > The test uses the custom dump format for dumping and restoring the
> > database.
>
> At quick glance, that seems to be going in the right direction. Note
> that you have forgotten install and uninstall rules for the new .pm
> file.
>

Before submitting the patch, I looked for all the places which mention
AdjustUpgrade or AdjustUpgrade.pm to find places where the new module needs
to be mentioned. But I didn't find any. AdjustUpgrade is not mentioned
in src/test/perl/Makefile or src/test/perl/meson.build. Do we want to also
add AdjustUpgrade.pm in those files?

>
> 0002 increases more the runtime of a test that's already one of the
> longest ones in the tree is not really appealing, I am afraid.
>

We could forget 0002. I am fine with that. But I can change the code such
that formats other than "plain" are tested when PG_TEST_EXTRAS contains
"regress_dump_formats". Would that be acceptable?

--
Best Wishes,
Ashutosh Bapat

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Page 2024-07-08 10:32:23 Re: tests fail on windows with default git settings
Previous Message Junwang Zhao 2024-07-08 10:08:21 Re: Address the -Wuse-after-free warning in ATExecAttachPartition()