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
pg_upgrade_check_mode_v1.diff
Description: pg_upgrade_check_mode_v1.diff