Rework code defining default compression for dir/custom formats in pg_dump
commitbedc1f0564d12c4a89fc9de3044201166542dc3d
authorMichael Paquier <michael@paquier.xyz>
Thu, 27 Apr 2023 04:34:05 +0000 (27 13:34 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 27 Apr 2023 04:34:05 +0000 (27 13:34 +0900)
treeeb95b475ae0caf15a4a39b7ca9b999e0903d6476
parent7b7fa85130330128b404eddebd4f33c6739454b0
Rework code defining default compression for dir/custom formats in pg_dump

As written, pg_dump would call twice parse_compress_specification() for
the custom and directory formats to build a compression specification if
no compression option is defined, as these formats should be compressed
by default when compiled with zlib, or use no compression without zlib.
This made the code logic quite confusing, and the first compression
specification built would be incorrect before being overwritten by the
second one.

Rather than creating two compression specifications, this commit changes
a bit the order of the checks for the compression options so as
compression_algorithm_str is now set to a correct value for the custom
and format directory when no compression option is defined.  This makes
the code easier to understand, as parse_compress_specification() is now
called once for all the format, with or without user-specified
compression methods.  One comment was also confusing for the non-zlib
case, so remove it while on it.

This code has been introduced in 5e73a60 when adding support for
compression specifications in pg_dump.

Per discussion with Justin Pryzby and Georgios Kokolatos.

Discussion: https://postgr.es/m/20230225050214.GH1653@telsasoft.com
src/bin/pg_dump/pg_dump.c