mirror of https://github.com/postgres/postgres
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 30e7c175b8
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 <aleksander@timescale.com>
Discussion: https://www.postgresql.org/message-id/flat/113ef2d2-3657-4353-be97-f28fceddbca1%40eisentraut.org
This commit is contained in:
parent
701cf1e317
commit
7da1bdc2c2
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue