Commit ecbdc4c5 authored by Fujii Masao's avatar Fujii Masao

Forbid invalid combination of options in pg_basebackup.

Commit 56c7d8d4 allowed pg_basebackup
to stream WAL in tar mode. But there is the restriction that WAL
streaming in tar mode works only when the value - (dash) is not
specified as output directory. This means that the combination of
three options "-D -", "-F t" and "-X stream" is invalid. However,
previously, even when those options were specified at the same time,
pg_basebackup background process unexpectedly started streaming WAL.
And then it exited with an error.

This commit changes pg_basebackup so that it errors out on such
invalid combination of options at the beginning.

Reviewed by Magnus Hagander, and patch by me.
parent c080b223
...@@ -2268,6 +2268,16 @@ main(int argc, char **argv) ...@@ -2268,6 +2268,16 @@ main(int argc, char **argv)
exit(1); exit(1);
} }
if (format == 't' && streamwal && strcmp(basedir, "-") == 0)
{
fprintf(stderr,
_("%s: cannot stream transaction logs in tar mode to stdout\n"),
progname);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
progname);
exit(1);
}
if (replication_slot && !streamwal) if (replication_slot && !streamwal)
{ {
fprintf(stderr, fprintf(stderr,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment