pgsql-v9.2-fix-relcache-leaks-in-get_object_address_relobject.patch
application/octet-stream
Filename: pgsql-v9.2-fix-relcache-leaks-in-get_object_address_relobject.patch
Type: application/octet-stream
Part: 0
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: unified
Series: patch v9
| File | + | − |
|---|---|---|
| src/backend/catalog/objectaddress.c | 9 | 0 |
src/backend/catalog/objectaddress.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 6928835..84381dd 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -635,6 +635,9 @@ get_object_address_relobject(ObjectType objtype, List *objname,
get_rewrite_oid_without_relid(depname, &reloid, missing_ok);
address.objectSubId = 0;
+ if (!OidIsValid(address.objectId))
+ return address;
+
/*
* Caller is expecting to get back the relation, even though we
* didn't end up using it to find the rule.
@@ -677,6 +680,12 @@ get_object_address_relobject(ObjectType objtype, List *objname,
address.objectId = InvalidOid;
address.objectSubId = 0;
}
+
+ if (!OidIsValid(address.objectId))
+ {
+ heap_close(relation, AccessShareLock);
+ return address;
+ }
}
/* Done. */