> On 20 Dec 2024, at 11:01, Ashutosh Bapat <ashutosh.bapat....@gmail.com> wrote:
> On Wed, Dec 18, 2024 at 7:39 PM Daniel Gustafsson <dan...@yesql.se> wrote:
>> 
>>> On 18 Dec 2024, at 12:28, Ashutosh Bapat <ashutosh.bapat....@gmail.com> 
>>> wrote:

>> +   if (   $ENV{PG_TEST_EXTRA}
>> +       && $ENV{PG_TEST_EXTRA} =~ /\bregress_dump_test\b/)
>> Should this also test that $oldnode and $newnode have matching pg_version to
>> keep this from running in a cross-version upgrade test?  While it can be 
>> argued
>> that running this in a cross-version upgrade is breaking it and getting to 
>> keep
>> both pieces, it's also not ideal to run a resource intensive test we know 
>> will
>> fail.  (It can't be done at this exact callsite, just picked to illustrate.)
> 
> You already wrote it in parenthesis. At the exact callsite $oldnode
> and $newnode can not be of different versions. In fact newnode is yet
> to be created at this point. But $oldnode has the same version as the
> server run from the code. In a cross-version upgrade this test will
> not be executed. I am confused as to what this comment is about.

Sure, it can't be checked until $newnode is created, but it seems like a cheap
test to ensure it's not executed as part of someones cross-version tests.

>> +  my $format_spec = substr($format, 0, 1);
>> This doesn't seem great for readability, how about storing the formats and
>> specfiers in an array of Perl hashes which can be iterated over with
>> descriptive names, like $format{'name'} and $format{'spec'}?
> 
> Instead of an array of hashes, I used a single hash with format
> description as key and format spec as value. Hope that's acceptable.

LGTM.

--
Daniel Gustafsson



Reply via email to