mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-06 15:24:56 +08:00
Fix oversights in pg_basebackup's -z (compression) option.
The short-form -z switch didn't work, for lack of telling getopt_long about it; and even if specified long-form, it failed to do anything, because the various tests elsewhere in the file would take Z_DEFAULT_COMPRESSION (which is -1) as meaning "don't compress". Per bug #6060 from Shigehiro Honda, though I editorialized on his patch a bit.
This commit is contained in:
parent
264a6b127a
commit
31156ce8b9
@ -264,7 +264,7 @@ ReceiveTarFile(PGconn *conn, PGresult *res, int rownum)
|
|||||||
if (strcmp(basedir, "-") == 0)
|
if (strcmp(basedir, "-") == 0)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBZ
|
#ifdef HAVE_LIBZ
|
||||||
if (compresslevel > 0)
|
if (compresslevel != 0)
|
||||||
{
|
{
|
||||||
ztarfile = gzdopen(dup(fileno(stdout)), "wb");
|
ztarfile = gzdopen(dup(fileno(stdout)), "wb");
|
||||||
if (gzsetparams(ztarfile, compresslevel, Z_DEFAULT_STRATEGY) != Z_OK)
|
if (gzsetparams(ztarfile, compresslevel, Z_DEFAULT_STRATEGY) != Z_OK)
|
||||||
@ -281,7 +281,7 @@ ReceiveTarFile(PGconn *conn, PGresult *res, int rownum)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBZ
|
#ifdef HAVE_LIBZ
|
||||||
if (compresslevel > 0)
|
if (compresslevel != 0)
|
||||||
{
|
{
|
||||||
snprintf(fn, sizeof(fn), "%s/base.tar.gz", basedir);
|
snprintf(fn, sizeof(fn), "%s/base.tar.gz", basedir);
|
||||||
ztarfile = gzopen(fn, "wb");
|
ztarfile = gzopen(fn, "wb");
|
||||||
@ -305,7 +305,7 @@ ReceiveTarFile(PGconn *conn, PGresult *res, int rownum)
|
|||||||
* Specific tablespace
|
* Specific tablespace
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_LIBZ
|
#ifdef HAVE_LIBZ
|
||||||
if (compresslevel > 0)
|
if (compresslevel != 0)
|
||||||
{
|
{
|
||||||
snprintf(fn, sizeof(fn), "%s/%s.tar.gz", basedir, PQgetvalue(res, rownum, 0));
|
snprintf(fn, sizeof(fn), "%s/%s.tar.gz", basedir, PQgetvalue(res, rownum, 0));
|
||||||
ztarfile = gzopen(fn, "wb");
|
ztarfile = gzopen(fn, "wb");
|
||||||
@ -325,7 +325,7 @@ ReceiveTarFile(PGconn *conn, PGresult *res, int rownum)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBZ
|
#ifdef HAVE_LIBZ
|
||||||
if (compresslevel > 0)
|
if (compresslevel != 0)
|
||||||
{
|
{
|
||||||
if (!ztarfile)
|
if (!ztarfile)
|
||||||
{
|
{
|
||||||
@ -976,7 +976,7 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((c = getopt_long(argc, argv, "D:F:l:Z:c:h:p:U:xwWvP",
|
while ((c = getopt_long(argc, argv, "D:F:xl:zZ:c:h:p:U:wWvP",
|
||||||
long_options, &option_index)) != -1)
|
long_options, &option_index)) != -1)
|
||||||
{
|
{
|
||||||
switch (c)
|
switch (c)
|
||||||
@ -1089,7 +1089,7 @@ main(int argc, char **argv)
|
|||||||
/*
|
/*
|
||||||
* Mutually exclusive arguments
|
* Mutually exclusive arguments
|
||||||
*/
|
*/
|
||||||
if (format == 'p' && compresslevel > 0)
|
if (format == 'p' && compresslevel != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
_("%s: only tar mode backups can be compressed\n"),
|
_("%s: only tar mode backups can be compressed\n"),
|
||||||
@ -1100,7 +1100,7 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef HAVE_LIBZ
|
#ifndef HAVE_LIBZ
|
||||||
if (compresslevel > 0)
|
if (compresslevel != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
_("%s: this build does not support compression\n"),
|
_("%s: this build does not support compression\n"),
|
||||||
|
Loading…
Reference in New Issue
Block a user