mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
Don't trash input list structure in does_not_exist_skipping().
The trigger and rule cases need to split up the input name list, but they mustn't corrupt the passed-in data structure, since it could be part of a cached utility-statement parsetree. Per bug #7641.
This commit is contained in:
parent
a9dad56441
commit
75af5ae9c0
@ -203,7 +203,7 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs)
|
||||
case OBJECT_TRIGGER:
|
||||
msg = gettext_noop("trigger \"%s\" for table \"%s\" does not exist, skipping");
|
||||
name = strVal(llast(objname));
|
||||
args = NameListToString(list_truncate(objname,
|
||||
args = NameListToString(list_truncate(list_copy(objname),
|
||||
list_length(objname) - 1));
|
||||
break;
|
||||
case OBJECT_EVENT_TRIGGER:
|
||||
@ -213,7 +213,7 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs)
|
||||
case OBJECT_RULE:
|
||||
msg = gettext_noop("rule \"%s\" for relation \"%s\" does not exist, skipping");
|
||||
name = strVal(llast(objname));
|
||||
args = NameListToString(list_truncate(objname,
|
||||
args = NameListToString(list_truncate(list_copy(objname),
|
||||
list_length(objname) - 1));
|
||||
break;
|
||||
case OBJECT_FDW:
|
||||
|
Loading…
Reference in New Issue
Block a user