Extend the options of pg_basebackup to control compression
authorMichael Paquier <michael@paquier.xyz>
Fri, 21 Jan 2022 02:08:43 +0000 (11:08 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 21 Jan 2022 02:08:43 +0000 (11:08 +0900)
commit5c649fe153367cdab278738ee4aebbfd158e0546
treee67b7bd967908edc5f6b8070e980d88fc64dbff3
parent512fc2dd790e3e7c35b3af8cd7586aeb25248c6e
Extend the options of pg_basebackup to control compression

The option --compress is extended to accept a compression method and an
optional compression level, as of the grammar METHOD[:LEVEL].  The
methods currently support are "none" and "gzip", for client-side
compression.  Any of those methods use only an integer value for the
compression level, but any method implemented in the future could use
more specific keywords if necessary.

This commit keeps the logic backward-compatible.  Hence, the following
compatibility rules apply for the new format of the option --compress:
* -z/--gzip is a synonym of --compress=gzip.
* --compress=NUM implies:
** --compress=none if NUM = 0.
** --compress=gzip:NUM if NUM > 0.

Note that there are also plans to extend more this grammar with
server-side compression.

Reviewed-by: Robert Haas, Magnus Hagander, Álvaro Herrera, David
G. Johnston, Georgios Kokolatos
Discussion: https://postgr.es/m/Yb3GEgWwcu4wZDuA@paquier.xyz
doc/src/sgml/ref/pg_basebackup.sgml
src/bin/pg_basebackup/pg_basebackup.c
src/bin/pg_basebackup/t/010_pg_basebackup.pl