@@ -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