Disable silently generation of manifests with servers <= 12 in pg_basebackup
authorMichael Paquier <michael@paquier.xyz>
Thu, 16 Apr 2020 04:57:07 +0000 (13:57 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 16 Apr 2020 04:57:07 +0000 (13:57 +0900)
commit542d7817f774ea9d94798eb95cdf250d4f1527d9
treeb18dc51c9ecaad16a5341c42e700d424cd8e06ef
parentf0ca378d4c139eda99ef14998115c1674dac3fc5
Disable silently generation of manifests with servers <= 12 in pg_basebackup

Since 0d8c9c1, pg_basebackup would generate an error if connected to a
backend version older than 12 where backup manifests are not supported.
Avoiding this error is possible by using the --no-manifest option.

This error handling could be confusing for some users, where patching a
backup script that interacts with multiple backend versions would cause
the addition of --no-manifest to potentially not generate a backup
manifest even for Postgres 13 and newer versions.  As we want to
encourage the use of backup manifests as much as possible, this commit
silently disables manifests where not supported, instead of generating
an error.

While on it, rework a bit the code to make it more consistent with the
surroundings when generating the BASE_BACKUP command.

Per discussion with Andres Freund, Stephen Frost, Robert Haas, Álvaro
Herrera, Kyotaro Horiguchi, Tom Lane, David Steele, and me.

Author: Michael Paquier
Discussion: https://postgr.es/m/20200410080910.GZ1606@paquier.xyz
src/bin/pg_basebackup/pg_basebackup.c