Hi, 
With the addition of --copy option, pg_upgrade now has three possible transfer 
mode options. Currently, an error does not occur 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 being specified.

Regards,
Noriyoshi Shinoda
-----Original Message-----
From: Peter Eisentraut <peter.eisentr...@enterprisedb.com> 
Sent: Saturday, December 17, 2022 2:44 AM
To: Daniel Gustafsson <dan...@yesql.se>
Cc: PostgreSQL Hackers <pgsql-hack...@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.eisentr...@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



Attachment: pg_upgrade_check_mode_v1.diff
Description: pg_upgrade_check_mode_v1.diff

Reply via email to