aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-02-07 22:09:53 -0500
committerPeter Eisentraut <peter_e@gmx.net>2017-02-07 22:09:53 -0500
commit115cb31597fac8a17202d1e41da8baf33fcb60cf (patch)
tree4e9d5e7bce289bb373b471787f2e3971dc03db1a /src
parente35bbea7ddd89c7f51988fcf03c87150938ea2e3 (diff)
downloadpostgresql-115cb31597fac8a17202d1e41da8baf33fcb60cf.tar.gz
postgresql-115cb31597fac8a17202d1e41da8baf33fcb60cf.zip
Fix relcache leaks in get_object_address_publication_rel()
Diffstat (limited to 'src')
-rw-r--r--src/backend/catalog/objectaddress.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index a3bb2f1c0ef..9029477d68c 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -1835,7 +1835,10 @@ get_object_address_publication_rel(List *objname, List *objargs,
/* Now look up the pg_publication tuple */
pub = GetPublicationByName(pubname, missing_ok);
if (!pub)
+ {
+ relation_close(relation, AccessShareLock);
return address;
+ }
/* Find the publication relation mapping in syscache. */
address.objectId =
@@ -1849,6 +1852,7 @@ get_object_address_publication_rel(List *objname, List *objargs,
(errcode(ERRCODE_UNDEFINED_OBJECT),
errmsg("publication relation \"%s\" in publication \"%s\" does not exist",
RelationGetRelationName(relation), pubname)));
+ relation_close(relation, AccessShareLock);
return address;
}