pg_upgrade: Make testing different transfer modes easier

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-12-01T15:18:21Z
Lists: pgsql-hackers

Attachments

I wanted to test the different pg_upgrade transfer modes (--link, 
--clone), but that was not that easy, because there is more than one 
place in the test script you have to find and manually change.  So I 
wrote a little patch to make that easier.  It's still manual, but it's a 
start.  (In principle, we could automatically run the tests with each 
supported mode in a loop, but that would be very slow.)

While doing that, I also found it strange that the default transfer mode 
(referred to as "copy" internally) did not have any external 
representation, so it is awkward to refer to it in text, and obscure to 
see where it is used for example in those test scripts.  So I added an 
option --copy, which effectively does nothing, but it's not uncommon to 
have options that select default behaviors explicitly.  (I also thought 
about something like a "mode" option with an argument, but given that we 
already have --link and --clone, this seemed the most sensible.)

Thoughts?

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pg_upgrade: Add --copy option

  2. pg_upgrade: Make testing different transfer modes easier