From c1b2124efead3d572e9cb941d0051026208387d2 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Wed, 29 Mar 2023 20:09:12 +0200 Subject: [PATCH v15 1/2] backtrack on making WITHOUT_LA be for UNIQUE rather than TIME --- src/backend/parser/gram.y | 10 +++++----- src/backend/parser/parser.c | 4 ++-- src/interfaces/ecpg/preproc/parser.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 1b5daf6734..b1fca04682 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -824,7 +824,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); /* SQL/JSON related keywords */ %nonassoc UNIQUE JSON %nonassoc KEYS OBJECT_P SCALAR VALUE_P -%nonassoc WITH WITHOUT_LA +%nonassoc WITH WITHOUT /* * To support target_el without AS, it used to be necessary to assign IDENT an @@ -14313,7 +14313,7 @@ ConstInterval: opt_timezone: WITH_LA TIME ZONE { $$ = true; } - | WITHOUT TIME ZONE { $$ = false; } + | WITHOUT_LA TIME ZONE { $$ = false; } | /*EMPTY*/ { $$ = false; } ; @@ -16464,9 +16464,9 @@ json_predicate_type_constraint: json_key_uniqueness_constraint_opt: WITH UNIQUE KEYS { $$ = true; } | WITH UNIQUE { $$ = true; } - | WITHOUT_LA UNIQUE KEYS { $$ = false; } - | WITHOUT_LA UNIQUE { $$ = false; } - | /* EMPTY */ %prec KEYS { $$ = false; } + | WITHOUT UNIQUE KEYS { $$ = false; } + | WITHOUT UNIQUE { $$ = false; } + | /* EMPTY */ %prec KEYS { $$ = false; } ; json_name_and_value_list: diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c index 65eb087657..e17c310cc1 100644 --- a/src/backend/parser/parser.c +++ b/src/backend/parser/parser.c @@ -241,10 +241,10 @@ base_yylex(YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner) break; case WITHOUT: - /* Replace WITHOUT by WITHOUT_LA if it's followed by UNIQUE */ + /* Replace WITHOUT by WITHOUT_LA if it's followed by TIME */ switch (next_token) { - case UNIQUE: + case TIME: cur_token = WITHOUT_LA; break; } diff --git a/src/interfaces/ecpg/preproc/parser.c b/src/interfaces/ecpg/preproc/parser.c index a40f4bef09..38e7acb680 100644 --- a/src/interfaces/ecpg/preproc/parser.c +++ b/src/interfaces/ecpg/preproc/parser.c @@ -159,10 +159,10 @@ filtered_base_yylex(void) break; case WITHOUT: - /* Replace WITHOUT by WITHOUT_LA if it's followed by UNIQUE */ + /* Replace WITHOUT by WITHOUT_LA if it's followed by TIME */ switch (next_token) { - case UNIQUE: + case TIME: cur_token = WITHOUT_LA; break; } -- 2.30.2