v28-0003-port-replace-int-with-string.patch
application/octet-stream
Filename: v28-0003-port-replace-int-with-string.patch
Type: application/octet-stream
Part: 2
Message:
Re: speed up a logical replica setup
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v28-0003
Subject: port: replace int with string
| File | + | − |
|---|---|---|
| src/bin/pg_basebackup/pg_createsubscriber.c | 9 | 8 |
From dd9e4c8955adc98bce1dd11d0e89e020a803c9d6 Mon Sep 17 00:00:00 2001
From: Euler Taveira <euler@eulerto.com>
Date: Wed, 6 Mar 2024 22:00:23 -0300
Subject: [PATCH v28 3/4] port: replace int with string
---
src/bin/pg_basebackup/pg_createsubscriber.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/bin/pg_basebackup/pg_createsubscriber.c b/src/bin/pg_basebackup/pg_createsubscriber.c
index 2a0cd47a8d..052153e009 100644
--- a/src/bin/pg_basebackup/pg_createsubscriber.c
+++ b/src/bin/pg_basebackup/pg_createsubscriber.c
@@ -28,7 +28,7 @@
#include "fe_utils/simple_list.h"
#include "getopt_long.h"
-#define DEFAULT_SUB_PORT 50432
+#define DEFAULT_SUB_PORT "50432"
#define BASE_OUTPUT_DIR "pg_createsubscriber_output.d"
/* Command-line options */
@@ -37,7 +37,7 @@ struct CreateSubscriberOptions
char *subscriber_dir; /* standby/subscriber data directory */
char *pub_conninfo_str; /* publisher connection string */
char *socket_dir; /* directory for Unix-domain socket, if any */
- unsigned short sub_port; /* subscriber port number */
+ char *sub_port; /* subscriber port number */
const char *sub_username; /* subscriber username */
SimpleStringList database_names; /* list of database names */
int recovery_timeout; /* stop recovery after this time */
@@ -197,7 +197,7 @@ usage(void)
printf(_(" -d, --database=DBNAME database to create a subscription\n"));
printf(_(" -D, --pgdata=DATADIR location for the subscriber data directory\n"));
printf(_(" -n, --dry-run dry run, just show what would be done\n"));
- printf(_(" -p, --subscriber-port=PORT subscriber port number (default %d)\n"), DEFAULT_SUB_PORT);
+ printf(_(" -p, --subscriber-port=PORT subscriber port number (default %s)\n"), DEFAULT_SUB_PORT);
printf(_(" -P, --publisher-server=CONNSTR publisher connection string\n"));
printf(_(" -s, --socket-directory=DIR socket directory to use (default current directory)\n"));
printf(_(" -t, --recovery-timeout=SECS seconds to wait for recovery to end\n"));
@@ -1260,7 +1260,7 @@ start_standby_server(struct CreateSubscriberOptions *opt, const char *pg_ctl_pat
appendPQExpBuffer(pg_ctl_cmd, "\"%s\" start -D \"%s\" -s",
pg_ctl_path, opt->subscriber_dir);
if (with_options)
- appendPQExpBuffer(pg_ctl_cmd, " -o \"-p %u%s\"",
+ appendPQExpBuffer(pg_ctl_cmd, " -o \"-p %s%s\"",
opt->sub_port, socket_string);
pg_log_debug("pg_ctl command is: %s", pg_ctl_cmd->data);
rc = system(pg_ctl_cmd->data);
@@ -1704,7 +1704,8 @@ main(int argc, char **argv)
opt.subscriber_dir = NULL;
opt.pub_conninfo_str = NULL;
opt.socket_dir = NULL;
- opt.sub_port = DEFAULT_SUB_PORT;
+ opt.sub_port = palloc(16);
+ strcpy(opt.sub_port, DEFAULT_SUB_PORT);
opt.sub_username = NULL;
opt.database_names = (SimpleStringList)
{
@@ -1749,8 +1750,8 @@ main(int argc, char **argv)
dry_run = true;
break;
case 'p':
- if ((opt.sub_port = atoi(optarg)) <= 0)
- pg_fatal("invalid subscriber port number");
+ pg_free(opt.sub_port);
+ opt.sub_port = pg_strdup(optarg);
break;
case 'P':
opt.pub_conninfo_str = pg_strdup(optarg);
@@ -1848,7 +1849,7 @@ main(int argc, char **argv)
pg_log_info("validating connection string on subscriber");
#if !defined(WIN32)
- sub_base_conninfo = psprintf("host=%s port=%u user=%s fallback_application_name=%s",
+ sub_base_conninfo = psprintf("host=%s port=%s user=%s fallback_application_name=%s",
opt.socket_dir, opt.sub_port, opt.sub_username, progname);
#else /* WIN32 */
sub_base_conninfo = psprintf("port=%u user=%s fallback_application_name=%s",
--
2.43.0