Skip to content

Commit ba66c9d

Browse files
committed
Add missing pstrdup calls
The one for the OCLASS_COLLATION case was noticed by CLOBBER_CACHE_ALWAYS buildfarm members; the others I spotted by manual code inspection. Also remove a redundant check.
1 parent c168c88 commit ba66c9d

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/backend/catalog/objectaddress.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1513,12 +1513,6 @@ pg_get_object_address(PG_FUNCTION_ARGS)
15131513
*/
15141514
switch (type)
15151515
{
1516-
case OBJECT_LARGEOBJECT:
1517-
if (list_length(name) != 1)
1518-
ereport(ERROR,
1519-
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
1520-
errmsg("name list length must be exactly %d", 1)));
1521-
break;
15221516
case OBJECT_DOMCONSTRAINT:
15231517
case OBJECT_OPCLASS:
15241518
case OBJECT_OPFAMILY:
@@ -3370,7 +3364,8 @@ getObjectIdentityParts(const ObjectAddress *object,
33703364
quote_qualified_identifier(schema,
33713365
NameStr(coll->collname)));
33723366
if (objname)
3373-
*objname = list_make2(schema, NameStr(coll->collname));
3367+
*objname = list_make2(schema,
3368+
pstrdup(NameStr(coll->collname)));
33743369
ReleaseSysCache(collTup);
33753370
break;
33763371
}
@@ -3667,7 +3662,7 @@ getObjectIdentityParts(const ObjectAddress *object,
36673662
quote_identifier(NameStr(rule->rulename)));
36683663
getRelationIdentity(&buffer, rule->ev_class, objname);
36693664
if (objname)
3670-
*objname = lappend(*objname, NameStr(rule->rulename));
3665+
*objname = lappend(*objname, pstrdup(NameStr(rule->rulename)));
36713666

36723667
heap_close(ruleDesc, AccessShareLock);
36733668
break;
@@ -3693,7 +3688,7 @@ getObjectIdentityParts(const ObjectAddress *object,
36933688
quote_identifier(NameStr(trig->tgname)));
36943689
getRelationIdentity(&buffer, trig->tgrelid, objname);
36953690
if (objname)
3696-
*objname = lappend(*objname, NameStr(trig->tgname));
3691+
*objname = lappend(*objname, pstrdup(NameStr(trig->tgname)));
36973692

36983693
heap_close(trigDesc, AccessShareLock);
36993694
break;
@@ -3719,7 +3714,7 @@ getObjectIdentityParts(const ObjectAddress *object,
37193714
quote_identifier(NameStr(policy->polname)));
37203715
getRelationIdentity(&buffer, policy->polrelid, objname);
37213716
if (objname)
3722-
*objname = lappend(*objname, NameStr(policy->polname));
3717+
*objname = lappend(*objname, pstrdup(NameStr(policy->polname)));
37233718

37243719
heap_close(polDesc, AccessShareLock);
37253720
break;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy