mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
Fix DROP ACCESS METHOD IF EXISTS.
The IF EXISTS option was documented, and implemented in the grammar, but it didn't actually work for lack of support in does_not_exist_skipping(). Per bug #14160. Report and patch by Kouhei Sutou Report: <20160527070433.19424.81712@wrigleys.postgresql.org>
This commit is contained in:
parent
9dd4178cec
commit
83dbde94f7
@ -262,6 +262,10 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs)
|
||||
|
||||
switch (objtype)
|
||||
{
|
||||
case OBJECT_ACCESS_METHOD:
|
||||
msg = gettext_noop("access method \"%s\" does not exist, skipping");
|
||||
name = NameListToString(objname);
|
||||
break;
|
||||
case OBJECT_TYPE:
|
||||
case OBJECT_DOMAIN:
|
||||
{
|
||||
@ -438,7 +442,7 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
elog(ERROR, "unexpected object type (%d)", (int) objtype);
|
||||
elog(ERROR, "unrecognized object type: %d", (int) objtype);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -227,6 +227,11 @@ DROP OPERATOR FAMILY test_operator_family USING no_such_am;
|
||||
ERROR: access method "no_such_am" does not exist
|
||||
DROP OPERATOR FAMILY IF EXISTS test_operator_family USING no_such_am;
|
||||
ERROR: access method "no_such_am" does not exist
|
||||
-- access method
|
||||
DROP ACCESS METHOD no_such_am;
|
||||
ERROR: access method "no_such_am" does not exist
|
||||
DROP ACCESS METHOD IF EXISTS no_such_am;
|
||||
NOTICE: access method "no_such_am" does not exist, skipping
|
||||
-- drop the table
|
||||
DROP TABLE IF EXISTS test_exists;
|
||||
DROP TABLE test_exists;
|
||||
|
@ -227,6 +227,10 @@ DROP OPERATOR FAMILY IF EXISTS test_operator_family USING btree;
|
||||
DROP OPERATOR FAMILY test_operator_family USING no_such_am;
|
||||
DROP OPERATOR FAMILY IF EXISTS test_operator_family USING no_such_am;
|
||||
|
||||
-- access method
|
||||
DROP ACCESS METHOD no_such_am;
|
||||
DROP ACCESS METHOD IF EXISTS no_such_am;
|
||||
|
||||
-- drop the table
|
||||
|
||||
DROP TABLE IF EXISTS test_exists;
|
||||
|
Loading…
Reference in New Issue
Block a user