Hi,
With the addition of --copy option, pg_upgrade now has three possible transfer mode options. Currently, an error does
notoccur even if multiple transfer modes are specified. For example, we can also run "pg_upgrade --link --copy --clone"
command.As discussed in Horiguchi-san's previous email, options like "--mode=link|copy|clone" can prevent this
problem.
The attached patch uses the current implementation and performs a minimum check to prevent multiple transfer modes from
beingspecified.
Regards,
Noriyoshi Shinoda
-----Original Message-----
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Sent: Saturday, December 17, 2022 2:44 AM
To: Daniel Gustafsson <daniel@yesql.se>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Subject: Re: pg_upgrade: Make testing different transfer modes easier
On 14.12.22 10:40, Daniel Gustafsson wrote:
>> On 14 Dec 2022, at 08:04, Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote:
>>
>> On 07.12.22 17:33, Peter Eisentraut wrote:
>>> I think if we want to make this configurable on the fly, and environment variable would be much easier, like
>>> my $mode = $ENV{PG_TEST_PG_UPGRADE_MODE} || '--copy';
>>
>> Here is an updated patch set that incorporates this idea.
>
> I would prefer a small note about it in src/bin/pg_upgrade/TESTING to
> document it outside of the code, but otherwise LGTM.
>
> + $mode,
> '--check'
> ],
>
> ...
>
> - '-p', $oldnode->port, '-P', $newnode->port
> + '-p', $oldnode->port, '-P', $newnode->port,
> + $mode,
> ],
>
> Minor nitpick, but while in there should we take the opportunity to
> add a trailing comma on the other two array declarations which now ends with --check?
> It's good Perl practice and will make the code consistent.
committed with these changes