@@ -1513,12 +1513,6 @@ pg_get_object_address(PG_FUNCTION_ARGS)
1513
1513
*/
1514
1514
switch (type )
1515
1515
{
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 ;
1522
1516
case OBJECT_DOMCONSTRAINT :
1523
1517
case OBJECT_OPCLASS :
1524
1518
case OBJECT_OPFAMILY :
@@ -3370,7 +3364,8 @@ getObjectIdentityParts(const ObjectAddress *object,
3370
3364
quote_qualified_identifier (schema ,
3371
3365
NameStr (coll -> collname )));
3372
3366
if (objname )
3373
- * objname = list_make2 (schema ,NameStr (coll -> collname ));
3367
+ * objname = list_make2 (schema ,
3368
+ pstrdup (NameStr (coll -> collname )));
3374
3369
ReleaseSysCache (collTup );
3375
3370
break ;
3376
3371
}
@@ -3667,7 +3662,7 @@ getObjectIdentityParts(const ObjectAddress *object,
3667
3662
quote_identifier (NameStr (rule -> rulename )));
3668
3663
getRelationIdentity (& buffer ,rule -> ev_class ,objname );
3669
3664
if (objname )
3670
- * objname = lappend (* objname ,NameStr (rule -> rulename ));
3665
+ * objname = lappend (* objname ,pstrdup ( NameStr (rule -> rulename ) ));
3671
3666
3672
3667
heap_close (ruleDesc ,AccessShareLock );
3673
3668
break ;
@@ -3693,7 +3688,7 @@ getObjectIdentityParts(const ObjectAddress *object,
3693
3688
quote_identifier (NameStr (trig -> tgname )));
3694
3689
getRelationIdentity (& buffer ,trig -> tgrelid ,objname );
3695
3690
if (objname )
3696
- * objname = lappend (* objname ,NameStr (trig -> tgname ));
3691
+ * objname = lappend (* objname ,pstrdup ( NameStr (trig -> tgname ) ));
3697
3692
3698
3693
heap_close (trigDesc ,AccessShareLock );
3699
3694
break ;
@@ -3719,7 +3714,7 @@ getObjectIdentityParts(const ObjectAddress *object,
3719
3714
quote_identifier (NameStr (policy -> polname )));
3720
3715
getRelationIdentity (& buffer ,policy -> polrelid ,objname );
3721
3716
if (objname )
3722
- * objname = lappend (* objname ,NameStr (policy -> polname ));
3717
+ * objname = lappend (* objname ,pstrdup ( NameStr (policy -> polname ) ));
3723
3718
3724
3719
heap_close (polDesc ,AccessShareLock );
3725
3720
break ;