diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 8de5bec57a13ae3cf9c077809f7b9c33cc0050bb..7f16212c9e5ab2c15576e95b55483f59c4e37beb 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -498,6 +498,12 @@ get_object_address_relobject(ObjectType objtype, List *objname,
 		address.objectId =
 			get_rewrite_oid_without_relid(depname, &reloid, missing_ok);
 		address.objectSubId = 0;
+
+		/*
+		 * Caller is expecting to get back the relation, even though we
+		 * didn't end up using it to find the rule.
+		 */
+		relation = heap_open(reloid, AccessShareLock);
 	}
 	else
 	{