Обсуждение: BUG #6060: does not work -z option of pg_basebackup

Поиск
Список
Период
Сортировка

BUG #6060: does not work -z option of pg_basebackup

От
"Shigehiro honda"
Дата:
The following bug has been logged online:

Bug reference:      6060
Logged by:          Shigehiro honda
Email address:      fwif0083@mb.infoweb.ne.jp
PostgreSQL version: 9.1 beta2
Operating system:   Linux
Description:        does not work -z option of pg_basebackup
Details:

it seems that the -z option of pg_basebackup does not work correctly.
In getopt_long() function, there is not 'z' in 3rd argument.

And Z_DEFAULT_COMPRESSION are defined as (-1) in my zlib.h and it does only
test (compresslevel > 0) in the code, so the command does not compress
anyway.

$ diff pg_basebackup.c.DIST pg_basebackup.c
267c267
<             if (compresslevel > 0)
---
>             if (compresslevel > 0 || compresslevel == Z_DEFAULT_COMPRESSION )
284c284
<             if (compresslevel > 0)
---
>             if (compresslevel > 0 || compresslevel == Z_DEFAULT_COMPRESSION)
308c308
<         if (compresslevel > 0)
---
>         if (compresslevel > 0 || compresslevel == Z_DEFAULT_COMPRESSION)
328c328
<     if (compresslevel > 0)
---
>     if (compresslevel > 0 || compresslevel == Z_DEFAULT_COMPRESSION)
979c979
<     while ((c = getopt_long(argc, argv, "D:F:l:Z:c:h:p:U:xwWvP",
---
>     while ((c = getopt_long(argc, argv, "D:F:l:Z:c:h:p:U:zxwWvP",
1092c1092
<     if (format == 'p' && compresslevel > 0)
---
>     if (format == 'p' && ( compresslevel > 0|| compresslevel ==
Z_DEFAULT_COMPRESSION ))

regards,

Re: BUG #6060: does not work -z option of pg_basebackup

От
Tom Lane
Дата:
"Shigehiro honda" <fwif0083@mb.infoweb.ne.jp> writes:
> it seems that the -z option of pg_basebackup does not work correctly.
> In getopt_long() function, there is not 'z' in 3rd argument.

Ooops.  Doesn't look like this got tested much (or at all).

> And Z_DEFAULT_COMPRESSION are defined as (-1) in my zlib.h and it does only
> test (compresslevel > 0) in the code, so the command does not compress
> anyway.

I think it would be sufficient to test (compresslevel != 0) in all these
places, instead of hard-wiring knowledge of Z_DEFAULT_COMPRESSION.

Will fix, thanks for the report!

> $ diff pg_basebackup.c.DIST pg_basebackup.c

BTW, plain diffs are just about useless, since patch can't apply them
safely if the code has changed at all.  Please send -c or -u format
diffs in future.

            regards, tom lane