v23-0005-Fix-some-trivial-issues.patch
application/octet-stream
Filename: v23-0005-Fix-some-trivial-issues.patch
Type: application/octet-stream
Part: 3
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 v23-0005
Subject: Fix some trivial issues
| File | + | − |
|---|---|---|
| src/bin/pg_basebackup/pg_createsubscriber.c | 20 | 24 |
From 7084bef82fa7ac5fe205352675f1acfe1d980367 Mon Sep 17 00:00:00 2001
From: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Date: Mon, 19 Feb 2024 03:59:19 +0000
Subject: [PATCH v23 05/13] Fix some trivial issues
---
src/bin/pg_basebackup/pg_createsubscriber.c | 44 ++++++++++-----------
1 file changed, 20 insertions(+), 24 deletions(-)
diff --git a/src/bin/pg_basebackup/pg_createsubscriber.c b/src/bin/pg_basebackup/pg_createsubscriber.c
index 1ad7de9190..968d0ae6bd 100644
--- a/src/bin/pg_basebackup/pg_createsubscriber.c
+++ b/src/bin/pg_basebackup/pg_createsubscriber.c
@@ -387,12 +387,11 @@ store_pub_sub_info(SimpleStringList dbnames, const char *pub_base_conninfo,
const char *sub_base_conninfo)
{
LogicalRepInfo *dbinfo;
- SimpleStringListCell *cell;
int i = 0;
dbinfo = (LogicalRepInfo *) pg_malloc(num_dbs * sizeof(LogicalRepInfo));
- for (cell = dbnames.head; cell; cell = cell->next)
+ for (SimpleStringListCell *cell = dbnames.head; cell; cell = cell->next)
{
char *conninfo;
@@ -469,7 +468,6 @@ get_primary_sysid(const char *conninfo)
res = PQexec(conn, "SELECT system_identifier FROM pg_control_system()");
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
- PQclear(res);
disconnect_database(conn);
pg_fatal("could not get system identifier: %s",
PQresultErrorMessage(res));
@@ -516,7 +514,7 @@ get_standby_sysid(const char *datadir)
pg_log_info("system identifier is %llu on subscriber",
(unsigned long long) sysid);
- pfree(cf);
+ pg_free(cf);
return sysid;
}
@@ -534,7 +532,6 @@ modify_subscriber_sysid(const char *pg_resetwal_path, CreateSubscriberOptions *o
struct timeval tv;
char *cmd_str;
- int rc;
pg_log_info("modifying system identifier from subscriber");
@@ -567,14 +564,15 @@ modify_subscriber_sysid(const char *pg_resetwal_path, CreateSubscriberOptions *o
if (!dry_run)
{
- rc = system(cmd_str);
+ int rc = system(cmd_str);
+
if (rc == 0)
pg_log_info("subscriber successfully changed the system identifier");
else
pg_fatal("subscriber failed to change system identifier: exit code: %d", rc);
}
- pfree(cf);
+ pg_free(cf);
}
/*
@@ -584,11 +582,11 @@ modify_subscriber_sysid(const char *pg_resetwal_path, CreateSubscriberOptions *o
static bool
setup_publisher(LogicalRepInfo *dbinfo)
{
- PGconn *conn;
- PGresult *res;
for (int i = 0; i < num_dbs; i++)
{
+ PGconn *conn;
+ PGresult *res;
char pubname[NAMEDATALEN];
char replslotname[NAMEDATALEN];
@@ -901,7 +899,7 @@ check_subscriber(LogicalRepInfo *dbinfo)
pg_log_error("permission denied for database %s", dbinfo[0].dbname);
return false;
}
- if (strcmp(PQgetvalue(res, 0, 1), "t") != 0)
+ if (strcmp(PQgetvalue(res, 0, 2), "t") != 0)
{
pg_log_error("permission denied for function \"%s\"",
"pg_catalog.pg_replication_origin_advance(text, pg_lsn)");
@@ -990,10 +988,10 @@ check_subscriber(LogicalRepInfo *dbinfo)
static bool
setup_subscriber(LogicalRepInfo *dbinfo, const char *consistent_lsn)
{
- PGconn *conn;
-
for (int i = 0; i < num_dbs; i++)
{
+ PGconn *conn;
+
/* Connect to subscriber. */
conn = connect_database(dbinfo[i].subconninfo);
if (conn == NULL)
@@ -1103,7 +1101,7 @@ drop_replication_slot(PGconn *conn, LogicalRepInfo *dbinfo,
res = PQexec(conn, str->data);
if (PQresultStatus(res) != PGRES_TUPLES_OK)
pg_log_error("could not drop replication slot \"%s\" on database \"%s\": %s",
- slot_name, dbinfo->dbname, PQerrorMessage(conn));
+ slot_name, dbinfo->dbname, PQresultErrorMessage(res));
PQclear(res);
}
@@ -1294,7 +1292,6 @@ create_publication(PGconn *conn, LogicalRepInfo *dbinfo)
res = PQexec(conn, str->data);
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
- PQclear(res);
PQfinish(conn);
pg_fatal("could not obtain publication information: %s",
PQresultErrorMessage(res));
@@ -1348,7 +1345,7 @@ create_publication(PGconn *conn, LogicalRepInfo *dbinfo)
{
PQfinish(conn);
pg_fatal("could not create publication \"%s\" on database \"%s\": %s",
- dbinfo->pubname, dbinfo->dbname, PQerrorMessage(conn));
+ dbinfo->pubname, dbinfo->dbname, PQresultErrorMessage(res));
}
}
@@ -1384,7 +1381,7 @@ drop_publication(PGconn *conn, LogicalRepInfo *dbinfo)
res = PQexec(conn, str->data);
if (PQresultStatus(res) != PGRES_COMMAND_OK)
pg_log_error("could not drop publication \"%s\" on database \"%s\": %s",
- dbinfo->pubname, dbinfo->dbname, PQerrorMessage(conn));
+ dbinfo->pubname, dbinfo->dbname, PQresultErrorMessage(res));
PQclear(res);
}
@@ -1429,7 +1426,7 @@ create_subscription(PGconn *conn, LogicalRepInfo *dbinfo)
{
PQfinish(conn);
pg_fatal("could not create subscription \"%s\" on database \"%s\": %s",
- dbinfo->subname, dbinfo->dbname, PQerrorMessage(conn));
+ dbinfo->subname, dbinfo->dbname, PQresultErrorMessage(res));
}
}
@@ -1465,7 +1462,7 @@ drop_subscription(PGconn *conn, LogicalRepInfo *dbinfo)
res = PQexec(conn, str->data);
if (PQresultStatus(res) != PGRES_COMMAND_OK)
pg_log_error("could not drop subscription \"%s\" on database \"%s\": %s",
- dbinfo->subname, dbinfo->dbname, PQerrorMessage(conn));
+ dbinfo->subname, dbinfo->dbname, PQresultErrorMessage(res));
PQclear(res);
}
@@ -1502,7 +1499,6 @@ set_replication_progress(PGconn *conn, LogicalRepInfo *dbinfo, const char *lsn)
res = PQexec(conn, str->data);
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
- PQclear(res);
PQfinish(conn);
pg_fatal("could not obtain subscription OID: %s",
PQresultErrorMessage(res));
@@ -1591,7 +1587,7 @@ enable_subscription(PGconn *conn, LogicalRepInfo *dbinfo)
{
PQfinish(conn);
pg_fatal("could not enable subscription \"%s\": %s",
- dbinfo->subname, PQerrorMessage(conn));
+ dbinfo->subname, PQresultErrorMessage(res));
}
PQclear(res);
@@ -1745,11 +1741,11 @@ main(int argc, char **argv)
pg_fatal("invalid old port number");
break;
case 'U':
- pfree(opt.subuser);
+ pg_free(opt.subuser);
opt.subuser = pg_strdup(optarg);
break;
case 's':
- pfree(opt.socketdir);
+ pg_free(opt.socketdir);
opt.socketdir = pg_strdup(optarg);
break;
case 'd':
@@ -1854,7 +1850,7 @@ main(int argc, char **argv)
pg_ctl_path = get_exec_path(argv[0], "pg_ctl");
pg_resetwal_path = get_exec_path(argv[0], "pg_resetwal");
- /* rudimentary check for a data directory. */
+ /* Rudimentary check for a data directory */
if (!check_data_directory(opt.subscriber_dir))
exit(1);
@@ -1877,7 +1873,7 @@ main(int argc, char **argv)
/* Create the output directory to store any data generated by this tool */
server_start_log = setup_server_logfile(opt.subscriber_dir);
- /* subscriber PID file. */
+ /* Subscriber PID file */
snprintf(pidfile, MAXPGPATH, "%s/postmaster.pid", opt.subscriber_dir);
/*
--
2.41.0.windows.3