diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c index cd763b3b91d..c637dbb9ef4 100644 --- a/src/backend/catalog/objectaddress.c +++ b/src/backend/catalog/objectaddress.c @@ -1513,12 +1513,6 @@ pg_get_object_address(PG_FUNCTION_ARGS) */ switch (type) { - case OBJECT_LARGEOBJECT: - if (list_length(name) != 1) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("name list length must be exactly %d", 1))); - break; case OBJECT_DOMCONSTRAINT: case OBJECT_OPCLASS: case OBJECT_OPFAMILY: @@ -3370,7 +3364,8 @@ getObjectIdentityParts(const ObjectAddress *object, quote_qualified_identifier(schema, NameStr(coll->collname))); if (objname) - *objname = list_make2(schema, NameStr(coll->collname)); + *objname = list_make2(schema, + pstrdup(NameStr(coll->collname))); ReleaseSysCache(collTup); break; } @@ -3667,7 +3662,7 @@ getObjectIdentityParts(const ObjectAddress *object, quote_identifier(NameStr(rule->rulename))); getRelationIdentity(&buffer, rule->ev_class, objname); if (objname) - *objname = lappend(*objname, NameStr(rule->rulename)); + *objname = lappend(*objname, pstrdup(NameStr(rule->rulename))); heap_close(ruleDesc, AccessShareLock); break; @@ -3693,7 +3688,7 @@ getObjectIdentityParts(const ObjectAddress *object, quote_identifier(NameStr(trig->tgname))); getRelationIdentity(&buffer, trig->tgrelid, objname); if (objname) - *objname = lappend(*objname, NameStr(trig->tgname)); + *objname = lappend(*objname, pstrdup(NameStr(trig->tgname))); heap_close(trigDesc, AccessShareLock); break; @@ -3719,7 +3714,7 @@ getObjectIdentityParts(const ObjectAddress *object, quote_identifier(NameStr(policy->polname))); getRelationIdentity(&buffer, policy->polrelid, objname); if (objname) - *objname = lappend(*objname, NameStr(policy->polname)); + *objname = lappend(*objname, pstrdup(NameStr(policy->polname))); heap_close(polDesc, AccessShareLock); break;