diff options
author | Peter Eisentraut | 2024-08-09 05:17:15 +0000 |
---|---|---|
committer | Peter Eisentraut | 2024-08-09 05:18:51 +0000 |
commit | 7da1bdc2c2f17038f2ae1900be90a0d7b5e361e0 (patch) | |
tree | 2fb2163ad7bf9a891ce03a2cebc069f567af5d2d | |
parent | 701cf1e3174d560a19c019f1085c73ef667acf2d (diff) |
Remove obsolete RECHECK keyword completely
This used to be part of CREATE OPERATOR CLASS and ALTER OPERATOR
FAMILY, but it has done nothing (except issue a NOTICE) since
PostgreSQL 8.4. Commit 30e7c175b81 removed support for dumping from
pre-9.2 servers, so this no longer serves any need.
This now removes it completely, and you'd get a normal parse error if
you used it.
Reviewed-by: Aleksander Alekseev <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/113ef2d2-3657-4353-be97-f28fceddbca1%40eisentraut.org
-rw-r--r-- | doc/src/sgml/ref/alter_opfamily.sgml | 8 | ||||
-rw-r--r-- | doc/src/sgml/ref/create_opclass.sgml | 8 | ||||
-rw-r--r-- | src/backend/parser/gram.y | 26 | ||||
-rw-r--r-- | src/include/parser/kwlist.h | 1 | ||||
-rw-r--r-- | src/test/isolation/specs/merge-match-recheck.spec | 2 |
5 files changed, 4 insertions, 41 deletions
diff --git a/doc/src/sgml/ref/alter_opfamily.sgml b/doc/src/sgml/ref/alter_opfamily.sgml index b2e5b9b72ec..5c4c2e579f5 100644 --- a/doc/src/sgml/ref/alter_opfamily.sgml +++ b/doc/src/sgml/ref/alter_opfamily.sgml @@ -273,14 +273,6 @@ ALTER OPERATOR FAMILY <replaceable>name</replaceable> USING <replaceable class=" is likely to be inlined into the calling query, which will prevent the optimizer from recognizing that the query matches an index. </para> - - <para> - Before <productname>PostgreSQL</productname> 8.4, the <literal>OPERATOR</literal> - clause could include a <literal>RECHECK</literal> option. This is no longer - supported because whether an index operator is <quote>lossy</quote> is now - determined on-the-fly at run time. This allows efficient handling of - cases where an operator might or might not be lossy. - </para> </refsect1> <refsect1> diff --git a/doc/src/sgml/ref/create_opclass.sgml b/doc/src/sgml/ref/create_opclass.sgml index f1d6a4cbbe2..2d560b68658 100644 --- a/doc/src/sgml/ref/create_opclass.sgml +++ b/doc/src/sgml/ref/create_opclass.sgml @@ -269,14 +269,6 @@ CREATE OPERATOR CLASS <replaceable class="parameter">name</replaceable> [ DEFAUL is likely to be inlined into the calling query, which will prevent the optimizer from recognizing that the query matches an index. </para> - - <para> - Before <productname>PostgreSQL</productname> 8.4, the <literal>OPERATOR</literal> - clause could include a <literal>RECHECK</literal> option. This is no longer - supported because whether an index operator is <quote>lossy</quote> is now - determined on-the-fly at run time. This allows efficient handling of - cases where an operator might or might not be lossy. - </para> </refsect1> <refsect1> diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index a043fd4c669..c3f25582c38 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -495,7 +495,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type <boolean> opt_instead %type <boolean> opt_unique opt_verbose opt_full -%type <boolean> opt_freeze opt_analyze opt_default opt_recheck +%type <boolean> opt_freeze opt_analyze opt_default %type <defelt> opt_binary copy_delimiter %type <boolean> copy_from opt_program @@ -770,7 +770,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); QUOTE QUOTES - RANGE READ REAL REASSIGN RECHECK RECURSIVE REF_P REFERENCES REFERENCING + RANGE READ REAL REASSIGN RECURSIVE REF_P REFERENCES REFERENCING REFRESH REINDEX RELATIVE_P RELEASE RENAME REPEATABLE REPLACE REPLICA RESET RESTART RESTRICT RETURN RETURNING RETURNS REVOKE RIGHT ROLE ROLLBACK ROLLUP ROUTINE ROUTINES ROW ROWS RULE @@ -6622,7 +6622,7 @@ opclass_item_list: ; opclass_item: - OPERATOR Iconst any_operator opclass_purpose opt_recheck + OPERATOR Iconst any_operator opclass_purpose { CreateOpClassItem *n = makeNode(CreateOpClassItem); ObjectWithArgs *owa = makeNode(ObjectWithArgs); @@ -6636,7 +6636,6 @@ opclass_item: $$ = (Node *) n; } | OPERATOR Iconst operator_with_argtypes opclass_purpose - opt_recheck { CreateOpClassItem *n = makeNode(CreateOpClassItem); @@ -6688,23 +6687,6 @@ opclass_purpose: FOR SEARCH { $$ = NIL; } | /*EMPTY*/ { $$ = NIL; } ; -opt_recheck: RECHECK - { - /* - * RECHECK no longer does anything in opclass definitions, - * but we still accept it to ease porting of old database - * dumps. - */ - ereport(NOTICE, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("RECHECK is no longer required"), - errhint("Update your data type."), - parser_errposition(@1))); - $$ = true; - } - | /*EMPTY*/ { $$ = false; } - ; - CreateOpFamilyStmt: CREATE OPERATOR FAMILY any_name USING name @@ -17784,7 +17766,6 @@ unreserved_keyword: | RANGE | READ | REASSIGN - | RECHECK | RECURSIVE | REF_P | REFERENCING @@ -18414,7 +18395,6 @@ bare_label_keyword: | READ | REAL | REASSIGN - | RECHECK | RECURSIVE | REF_P | REFERENCES diff --git a/src/include/parser/kwlist.h b/src/include/parser/kwlist.h index f7fe834cf45..bb191b1f469 100644 --- a/src/include/parser/kwlist.h +++ b/src/include/parser/kwlist.h @@ -363,7 +363,6 @@ PG_KEYWORD("range", RANGE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("read", READ, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("real", REAL, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("reassign", REASSIGN, UNRESERVED_KEYWORD, BARE_LABEL) -PG_KEYWORD("recheck", RECHECK, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("recursive", RECURSIVE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("ref", REF_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("references", REFERENCES, RESERVED_KEYWORD, BARE_LABEL) diff --git a/src/test/isolation/specs/merge-match-recheck.spec b/src/test/isolation/specs/merge-match-recheck.spec index 298b2bfdcd6..26266b8c297 100644 --- a/src/test/isolation/specs/merge-match-recheck.spec +++ b/src/test/isolation/specs/merge-match-recheck.spec @@ -1,4 +1,4 @@ -# MERGE MATCHED RECHECK +# MERGE MATCHED recheck # # This test looks at what happens when we have complex # WHEN MATCHED AND conditions and a concurrent UPDATE causes a |