v1-0001-Fix-wrconn.-Use-stack-variable.patch
application/octet-stream
Filename: v1-0001-Fix-wrconn.-Use-stack-variable.patch
Type: application/octet-stream
Part: 0
Patch
Format: format-patch
Series: patch v1-0001
Subject: Fix wrconn. Use stack variable.
| File | + | − |
|---|---|---|
| src/backend/commands/subscriptioncmds.c | 8 | 8 |
From 70ab0e6ddc7514af58bf92ca47ea37b02eec8a04 Mon Sep 17 00:00:00 2001
From: Peter Smith <peter.b.smith@fujitsu.com>
Date: Fri, 30 Apr 2021 12:12:28 +1000
Subject: [PATCH v1] Fix wrconn. Use stack variable.
Unlike the other function in the subscriptioncmds.c, the AlterSubscription_refresh was accidentally using
the global variable "wrconn" instead of a local stack variable.
Confusion probably due to same named local/global variables.
---
src/backend/commands/subscriptioncmds.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index ec5c409..668cecd 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -601,18 +601,19 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data)
char state;
} SubRemoveRels;
SubRemoveRels *sub_remove_rels;
+ WalReceiverConn *wrconn;
/* Load the library providing us libpq calls. */
load_file("libpqwalreceiver", false);
+ /* Try to connect to the publisher. */
+ wrconn = walrcv_connect(sub->conninfo, true, sub->name, &err);
+ if (!wrconn)
+ ereport(ERROR,
+ (errmsg("could not connect to the publisher: %s", err)));
+
PG_TRY();
{
- /* Try to connect to the publisher. */
- wrconn = walrcv_connect(sub->conninfo, true, sub->name, &err);
- if (!wrconn)
- ereport(ERROR,
- (errmsg("could not connect to the publisher: %s", err)));
-
/* Get the table list from publisher. */
pubrel_names = fetch_table_list(wrconn, sub->publications);
@@ -782,8 +783,7 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data)
}
PG_FINALLY();
{
- if (wrconn)
- walrcv_disconnect(wrconn);
+ walrcv_disconnect(wrconn);
}
PG_END_TRY();
--
1.8.3.1