]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
pg_recvlogical: Rename --two-phase and --failover options.
authorPeter Eisentraut <peter@eisentraut.org>
Sun, 29 Jun 2025 15:02:35 +0000 (17:02 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Sun, 29 Jun 2025 15:19:58 +0000 (17:19 +0200)
This commit renames the pg_recvlogical options --two-phase and
--failover to --enable-two-phase and --enable-failover, respectively.
The new names distinguish these enabling options from action options
like --start and --create-slot, while clearly indicating their purpose
to enable specific logical slot features.

The option --failover is new in PostgreSQL 18 (commit cf2655a9029), so
no compatibility break there.  The option --two-phase has existed
since PostgreSQL 15 (commit cda03cfed6b), so for compatibility we keep
the old option name --two-phase around as deprecated.

Also note that pg_createsubscriber has acquired an --enable-two-phase
option, so this increases consistency across tools.

Co-authored-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/a28f66df-1354-4709-8d63-932ded4cac35@eisentraut.org

doc/src/sgml/logicaldecoding.sgml
doc/src/sgml/ref/pg_recvlogical.sgml
src/bin/pg_basebackup/pg_recvlogical.c
src/bin/pg_basebackup/t/030_pg_recvlogical.pl

index 5c5957e0d37a146088e0e3ab8b9cfde8907deb24..fc288d691b9f63989e217bdb9b03b0428f04ec48 100644 (file)
@@ -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';"
index 63a45c7018a4505f7e07f577048c6d1f1b4ec861..f68182266a9fa27effbed750c0a2c0bea54d8c0d 100644 (file)
@@ -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>
@@ -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
@@ -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
index 4b4b545917d7dbc3449f3cac071ab4b0a49c99e9..fb7a6a1d05d8dca1f81290c51953f1a35a19865b 100644 (file)
@@ -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 */
@@ -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));
@@ -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"));
@@ -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 */
@@ -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);
                }
index c82e78847b3821d9fe13bd15a7094805d6a1348e..5f46357e72ac795c901f410c121fe254d83e29a3 100644 (file)
@@ -110,7 +110,7 @@ $node->command_fails(
                '--dbname' => $node->connstr('postgres'),
                '--start',
                '--endpos' => $nextlsn,
-               '--two-phase', '--no-loop',
+               '--enable-two-phase', '--no-loop',
                '--file' => '-',
        ],
        'incorrect usage');
@@ -142,7 +142,7 @@ $node->command_ok(
                '--slot' => 'test',
                '--dbname' => $node->connstr('postgres'),
                '--create-slot',
-               '--failover',
+               '--enable-failover',
        ],
        'slot with failover created');