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

Lists: pgsql-bugs
From: "Shigehiro honda" <fwif0083(at)mb(dot)infoweb(dot)ne(dot)jp>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6060: does not work -z option of pg_basebackup
Date: 2011-06-15 12:47:07
Message-ID: 201106151247.p5FCl70O029002@wwwmaster.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs


The following bug has been logged online:

Bug reference: 6060
Logged by: Shigehiro honda
Email address: fwif0083(at)mb(dot)infoweb(dot)ne(dot)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,


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Shigehiro honda" <fwif0083(at)mb(dot)infoweb(dot)ne(dot)jp>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6060: does not work -z option of pg_basebackup
Date: 2011-06-15 16:21:59
Message-ID: 450.1308154919@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

"Shigehiro honda" <fwif0083(at)mb(dot)infoweb(dot)ne(dot)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