diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 07cc81e..af47a01 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -644,7 +644,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); MAPPING MATCH MATERIALIZED MAXVALUE METHOD MINUTE_P MINVALUE MODE MONTH_P MOVE - NAME_P NAMES NATIONAL NATURAL NCHAR NEW NEXT NO NONE + NAME_P NAMES NATIONAL NATURAL NCHAR NEW NEXT NO NODROP NONE NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMERIC @@ -9190,19 +9190,9 @@ DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_slot ; opt_drop_slot: - IDENT SLOT - { - if (strcmp($1, "drop") == 0) - $$ = TRUE; - else if (strcmp($1, "nodrop") == 0) - $$ = FALSE; - else - ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("unrecognized option \"%s\"", $1), - parser_errposition(@1))); - } - | /*EMPTY*/ { $$ = TRUE; } + DROP SLOT { $$ = TRUE; } + | NODROP SLOT { $$ = FALSE; } + | /* EMPTY */ { $$ = TRUE; } ; /***************************************************************************** @@ -14441,6 +14431,7 @@ unreserved_keyword: | NEW | NEXT | NO + | NODROP | NOTHING | NOTIFY | NOWAIT diff --git a/src/include/parser/kwlist.h b/src/include/parser/kwlist.h index 985d650..f7bbe71 100644 --- a/src/include/parser/kwlist.h +++ b/src/include/parser/kwlist.h @@ -256,6 +256,7 @@ PG_KEYWORD("nchar", NCHAR, COL_NAME_KEYWORD) PG_KEYWORD("new", NEW, UNRESERVED_KEYWORD) PG_KEYWORD("next", NEXT, UNRESERVED_KEYWORD) PG_KEYWORD("no", NO, UNRESERVED_KEYWORD) +PG_KEYWORD("nodrop", NODROP, UNRESERVED_KEYWORD) PG_KEYWORD("none", NONE, COL_NAME_KEYWORD) PG_KEYWORD("not", NOT, RESERVED_KEYWORD) PG_KEYWORD("nothing", NOTHING, UNRESERVED_KEYWORD)