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. */