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