From 53a0644f71c6c9eb87efda16c6826445695e7a14 Mon Sep 17 00:00:00 2001
From: Masahiko Sawada <sawada.mshk@gmail.com>
Date: Tue, 17 Jun 2025 11:02:54 -0700
Subject: [PATCH v1] pg_recvlogical: Rename --two-phase and --failover options.

This commit renames --two-phase and --failover options 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.

No back-patch to back branches as it could break the exsiting tools.

Author: Peter Eisentraut <peter@eisentraut.org>
Reviewed-by:
Discussion: https://postgr.es/m/a28f66df-1354-4709-8d63-932ded4cac35@eisentraut.org
---
 doc/src/sgml/logicaldecoding.sgml             |  2 +-
 doc/src/sgml/ref/pg_recvlogical.sgml          |  8 ++++----
 src/bin/pg_basebackup/pg_recvlogical.c        | 18 +++++++++---------
 src/bin/pg_basebackup/t/030_pg_recvlogical.pl |  6 +++---
 4 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/doc/src/sgml/logicaldecoding.sgml b/doc/src/sgml/logicaldecoding.sgml
index dd9e83b08ea..00f1d1fc01d 100644
--- a/doc/src/sgml/logicaldecoding.sgml
+++ b/doc/src/sgml/logicaldecoding.sgml
@@ -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';"
diff --git a/doc/src/sgml/ref/pg_recvlogical.sgml b/doc/src/sgml/ref/pg_recvlogical.sgml
index 63a45c7018a..767d087be07 100644
--- a/doc/src/sgml/ref/pg_recvlogical.sgml
+++ b/doc/src/sgml/ref/pg_recvlogical.sgml
@@ -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,7 @@ PostgreSQL documentation
 
      <varlistentry>
        <term><option>-t</option></term>
-       <term><option>--two-phase</option></term>
+       <term><option>--enable-two-phase</option></term>
        <listitem>
        <para>
         Enables decoding of prepared transactions. This option may only be specified with
diff --git a/src/bin/pg_basebackup/pg_recvlogical.c b/src/bin/pg_basebackup/pg_recvlogical.c
index e6810efe5f0..5c169563d86 100644
--- a/src/bin/pg_basebackup/pg_recvlogical.c
+++ b/src/bin/pg_basebackup/pg_recvlogical.c
@@ -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 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,7 @@ 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(_("  -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 +698,9 @@ 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'},
 		{"verbose", no_argument, NULL, 'v'},
-		{"two-phase", no_argument, NULL, 't'},
 		{"version", no_argument, NULL, 'V'},
 		{"help", no_argument, NULL, '?'},
 /* connection options */
@@ -928,14 +928,14 @@ main(int argc, char **argv)
 	{
 		if (two_phase)
 		{
-			pg_log_error("--two-phase may only be specified with --create-slot");
+			pg_log_error("--enable-two-phase may only be specified with --create-slot");
 			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("--enable-failover may only be specified with --create-slot");
 			pg_log_error_hint("Try \"%s --help\" for more information.", progname);
 			exit(1);
 		}
diff --git a/src/bin/pg_basebackup/t/030_pg_recvlogical.pl b/src/bin/pg_basebackup/t/030_pg_recvlogical.pl
index c82e78847b3..381c1ab92cf 100644
--- a/src/bin/pg_basebackup/t/030_pg_recvlogical.pl
+++ b/src/bin/pg_basebackup/t/030_pg_recvlogical.pl
@@ -90,7 +90,7 @@ $node->command_ok(
 		'--slot' => 'test',
 		'--dbname' => $node->connstr('postgres'),
 		'--create-slot',
-		'--two-phase',
+		'--enable-two-phase',
 	],
 	'slot with two-phase created');
 
@@ -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');
 
-- 
2.43.5

