Skip to content

[pull] master from postgres:master #126

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion doc/src/sgml/logicaldecoding.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ COMMIT 693
$ pg_recvlogical -d postgres --slot=test --drop-slot

Example 2:
$ pg_recvlogical -d postgres --slot=test --create-slot --two-phase
$ pg_recvlogical -d postgres --slot=test --create-slot --enable-two-phase
$ pg_recvlogical -d postgres --slot=test --start -f -
<keycombo action="simul"><keycap>Control</keycap><keycap>Z</keycap></keycombo>
$ psql -d postgres -c "BEGIN;INSERT INTO data(data) VALUES('5');PREPARE TRANSACTION 'test';"
Expand Down
9 changes: 5 additions & 4 deletions doc/src/sgml/ref/pg_recvlogical.sgml
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ PostgreSQL documentation
</para>

<para>
The <option>--two-phase</option> and <option>--failover</option> options
can be specified with <option>--create-slot</option>.
The <option>--enable-two-phase</option> and <option>--enable-failover</option>
options can be specified with <option>--create-slot</option>.
</para>
</listitem>
</varlistentry>
Expand Down Expand Up @@ -166,7 +166,7 @@ PostgreSQL documentation
</varlistentry>

<varlistentry>
<term><option>--failover</option></term>
<term><option>--enable-failover</option></term>
<listitem>
<para>
Enables the slot to be synchronized to the standbys. This option may
Expand Down Expand Up @@ -300,7 +300,8 @@ PostgreSQL documentation

<varlistentry>
<term><option>-t</option></term>
<term><option>--two-phase</option></term>
<term><option>--enable-two-phase</option></term>
<term><option>--two-phase</option> (deprecated)</term>
<listitem>
<para>
Enables decoding of prepared transactions. This option may only be specified with
Expand Down
20 changes: 11 additions & 9 deletions src/bin/pg_basebackup/pg_recvlogical.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ typedef enum
/* Global Options */
static char *outfile = NULL;
static int verbose = 0;
static bool two_phase = false;
static bool failover = false;
static bool two_phase = false; /* enable-two-phase option */
static bool failover = false; /* enable-failover option */
static int noloop = 0;
static int standby_message_timeout = 10 * 1000; /* 10 sec = default */
static int fsync_interval = 10 * 1000; /* 10 sec = default */
Expand Down Expand Up @@ -89,9 +89,9 @@ usage(void)
printf(_(" --drop-slot drop the replication slot (for the slot's name see --slot)\n"));
printf(_(" --start start streaming in a replication slot (for the slot's name see --slot)\n"));
printf(_("\nOptions:\n"));
printf(_(" -E, --endpos=LSN exit after receiving the specified LSN\n"));
printf(_(" --failover enable replication slot synchronization to standby servers when\n"
printf(_(" --enable-failover enable replication slot synchronization to standby servers when\n"
" creating a replication slot\n"));
printf(_(" -E, --endpos=LSN exit after receiving the specified LSN\n"));
printf(_(" -f, --file=FILE receive log into this file, - for stdout\n"));
printf(_(" -F --fsync-interval=SECS\n"
" time between fsyncs to the output file (default: %d)\n"), (fsync_interval / 1000));
Expand All @@ -105,7 +105,8 @@ usage(void)
printf(_(" -s, --status-interval=SECS\n"
" time between status packets sent to server (default: %d)\n"), (standby_message_timeout / 1000));
printf(_(" -S, --slot=SLOTNAME name of the logical replication slot\n"));
printf(_(" -t, --two-phase enable decoding of prepared transactions when creating a slot\n"));
printf(_(" -t, --enable-two-phase enable decoding of prepared transactions when creating a slot\n"));
printf(_(" --two-phase (same as --enable-two-phase, deprecated)\n"));
printf(_(" -v, --verbose output verbose messages\n"));
printf(_(" -V, --version output version information, then exit\n"));
printf(_(" -?, --help show this help, then exit\n"));
Expand Down Expand Up @@ -698,9 +699,10 @@ main(int argc, char **argv)
{"file", required_argument, NULL, 'f'},
{"fsync-interval", required_argument, NULL, 'F'},
{"no-loop", no_argument, NULL, 'n'},
{"failover", no_argument, NULL, 5},
{"enable-failover", no_argument, NULL, 5},
{"enable-two-phase", no_argument, NULL, 't'},
{"two-phase", no_argument, NULL, 't'}, /* deprecated */
{"verbose", no_argument, NULL, 'v'},
{"two-phase", no_argument, NULL, 't'},
{"version", no_argument, NULL, 'V'},
{"help", no_argument, NULL, '?'},
/* connection options */
Expand Down Expand Up @@ -928,14 +930,14 @@ main(int argc, char **argv)
{
if (two_phase)
{
pg_log_error("--two-phase may only be specified with --create-slot");
pg_log_error("%s may only be specified with --create-slot", "--enable-two-phase");
pg_log_error_hint("Try \"%s --help\" for more information.", progname);
exit(1);
}

if (failover)
{
pg_log_error("--failover may only be specified with --create-slot");
pg_log_error("%s may only be specified with --create-slot", "--enable-failover");
pg_log_error_hint("Try \"%s --help\" for more information.", progname);
exit(1);
}
Expand Down
4 changes: 2 additions & 2 deletions src/bin/pg_basebackup/t/030_pg_recvlogical.pl
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
'--dbname' => $node->connstr('postgres'),
'--start',
'--endpos' => $nextlsn,
'--two-phase', '--no-loop',
'--enable-two-phase', '--no-loop',
'--file' => '-',
],
'incorrect usage');
Expand Down Expand Up @@ -142,7 +142,7 @@
'--slot' => 'test',
'--dbname' => $node->connstr('postgres'),
'--create-slot',
'--failover',
'--enable-failover',
],
'slot with failover created');

Expand Down