Don't start to stream after pg_receivexlog --create-slot.

Immediately starting to stream after --create-slot is inconvenient in a
number of situations (e.g. when configuring a slot for use in
recovery.conf) and it's easy to just call pg_receivexlog twice in the
rest of the cases.

Author: Michael Paquier
Discussion: CAB7nPqQ9qEtuDiKY3OpNzHcz5iUA+DUX9FcN9K8GUkCZvG7+Ew@mail.gmail.com
Backpatch: 9.5, where the option was introduced
This commit is contained in:
Andres Freund 2015-08-10 13:28:18 +02:00
parent 1e3e1ae266
commit 70fd0e14e8
2 changed files with 4 additions and 3 deletions

View File

@ -273,7 +273,7 @@ PostgreSQL documentation
<listitem>
<para>
Create a new physical replication slot with the name specified in
<option>--slot</option>, then start to stream WAL.
<option>--slot</option>, then exit.
</para>
</listitem>
</varlistentry>

View File

@ -508,7 +508,7 @@ main(int argc, char **argv)
/*
* Required arguments
*/
if (basedir == NULL && !do_drop_slot)
if (basedir == NULL && !do_drop_slot && !do_create_slot)
{
fprintf(stderr, _("%s: no target directory specified\n"), progname);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
@ -519,7 +519,7 @@ main(int argc, char **argv)
/*
* Check existence of destination folder.
*/
if (!do_drop_slot)
if (!do_drop_slot && !do_create_slot)
{
DIR *dir = get_destination_dir(basedir);
@ -584,6 +584,7 @@ main(int argc, char **argv)
if (!CreateReplicationSlot(conn, replication_slot, NULL, true,
slot_exists_ok))
disconnect_and_exit(1);
disconnect_and_exit(0);
}
/*