Remove obsolete RECHECK keyword completely
authorPeter Eisentraut
Fri, 9 Aug 2024 05:17:15 +0000 (07:17 +0200)
committerPeter Eisentraut
Fri, 9 Aug 2024 05:18:51 +0000 (07:18 +0200)
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
Discussion: https://www.postgresql.org/message-id/flat/113ef2d2-3657-4353-be97-f28fceddbca1%40eisentraut.org

doc/src/sgml/ref/alter_opfamily.sgml
doc/src/sgml/ref/create_opclass.sgml
src/backend/parser/gram.y
src/include/parser/kwlist.h
src/test/isolation/specs/merge-match-recheck.spec

index b2e5b9b72ec8bdf1c191ccd6224c2bdf25a47ced..5c4c2e579f57014da158834ddb298bd82705105c 100644 (file)
@@ -273,14 +273,6 @@ ALTER OPERATOR FAMILY name USING 
    is likely to be inlined into the calling query, which will prevent
    the optimizer from recognizing that the query matches an index.
   
-
-  
-   Before PostgreSQL 8.4, the OPERATOR
-   clause could include a RECHECK option.  This is no longer
-   supported because whether an index operator is lossy is now
-   determined on-the-fly at run time.  This allows efficient handling of
-   cases where an operator might or might not be lossy.
-  
  
 
  
index f1d6a4cbbe286bbe223d7842c481cd3ff56dd8bd..2d560b68658cf72327692b62d847f3537e6f2383 100644 (file)
@@ -269,14 +269,6 @@ CREATE OPERATOR CLASS name [ DEFAUL
    is likely to be inlined into the calling query, which will prevent
    the optimizer from recognizing that the query matches an index.
   
-
-  
-   Before PostgreSQL 8.4, the OPERATOR
-   clause could include a RECHECK option.  This is no longer
-   supported because whether an index operator is lossy is now
-   determined on-the-fly at run time.  This allows efficient handling of
-   cases where an operator might or might not be lossy.
-  
  
 
  
index a043fd4c669a8ad13ead2aebf599d78a84ce8392..c3f25582c383e7a1487e4f6b447d7c89e2551463 100644 (file)
@@ -495,7 +495,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
 
 %type  opt_instead
 %type  opt_unique opt_verbose opt_full
-%type  opt_freeze opt_analyze opt_default opt_recheck
+%type  opt_freeze opt_analyze opt_default
 %type  opt_binary copy_delimiter
 
 %type  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
index f7fe834cf4551b8e9ef9cb2220ea3570cb65eeeb..bb191b1f469172e07371fd98928148702d367748 100644 (file)
@@ -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)
index 298b2bfdcd6099179b3e904881b5f25a3bbc67a1..26266b8c2978e02f7dbb8c7a7d38e6830c18b00d 100644 (file)
@@ -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