aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/dropcmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/dropcmds.c')
-rw-r--r--src/backend/commands/dropcmds.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c
index e5185ba34d2..a1b0d4d2fa2 100644
--- a/src/backend/commands/dropcmds.c
+++ b/src/backend/commands/dropcmds.c
@@ -406,19 +406,27 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs)
name = NameListToString(objname);
break;
case OBJECT_OPCLASS:
- if (!schema_does_not_exist_skipping(objname, &msg, &name))
{
- msg = gettext_noop("operator class \"%s\" does not exist for access method \"%s\", skipping");
- name = NameListToString(objname);
- args = strVal(linitial(objargs));
+ List *opcname = list_copy_tail(objname, 1);
+
+ if (!schema_does_not_exist_skipping(opcname, &msg, &name))
+ {
+ msg = gettext_noop("operator class \"%s\" does not exist for access method \"%s\", skipping");
+ name = NameListToString(opcname);
+ args = strVal(linitial(objname));
+ }
}
break;
case OBJECT_OPFAMILY:
- if (!schema_does_not_exist_skipping(objname, &msg, &name))
{
- msg = gettext_noop("operator family \"%s\" does not exist for access method \"%s\", skipping");
- name = NameListToString(objname);
- args = strVal(linitial(objargs));
+ List *opfname = list_copy_tail(objname, 1);
+
+ if (!schema_does_not_exist_skipping(opfname, &msg, &name))
+ {
+ msg = gettext_noop("operator family \"%s\" does not exist for access method \"%s\", skipping");
+ name = NameListToString(opfname);
+ args = strVal(linitial(objname));
+ }
}
break;
default: