Commit 6ec07531 authored by Tom Lane's avatar Tom Lane

Ignore RECHECK in CREATE OPERATOR CLASS, just throwing a NOTICE, instead of

throwing an error as 8.4 had been doing.  The error interfered with porting
old database definitions (particularly for pg_migrator) without really buying
any safety.  Per bug #4817 and subsequent discussion.
parent 9873db66
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.663 2009/04/28 09:09:41 heikki Exp $ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.664 2009/05/27 20:42:29 tgl Exp $
* *
* HISTORY * HISTORY
* AUTHOR DATE MAJOR EVENT * AUTHOR DATE MAJOR EVENT
...@@ -3639,9 +3639,14 @@ opt_opfamily: FAMILY any_name { $$ = $2; } ...@@ -3639,9 +3639,14 @@ opt_opfamily: FAMILY any_name { $$ = $2; }
opt_recheck: RECHECK opt_recheck: RECHECK
{ {
ereport(ERROR, /*
* 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), (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("RECHECK is no longer supported"), errmsg("RECHECK is no longer required"),
errhint("Update your data type."), errhint("Update your data type."),
scanner_errposition(@1))); scanner_errposition(@1)));
$$ = TRUE; $$ = TRUE;
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* by PostgreSQL * by PostgreSQL
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.537 2009/05/26 17:36:05 tgl Exp $ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.538 2009/05/27 20:42:29 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -8159,8 +8159,10 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo) ...@@ -8159,8 +8159,10 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
* pg_depend entries. * pg_depend entries.
* *
* XXX RECHECK is gone as of 8.4, but we'll still print it if dumping * XXX RECHECK is gone as of 8.4, but we'll still print it if dumping
* an older server's table in which it is used. Would it be better * an older server's opclass in which it is used. This is to avoid
* to silently ignore it? * hard-to-detect breakage if a newer pg_dump is used to dump from
* an older server and then reload into that old version. This can
* go away once 8.3 is so old as to not be of interest to anyone.
*/ */
appendPQExpBuffer(query, "SELECT amopstrategy, false AS amopreqcheck, " appendPQExpBuffer(query, "SELECT amopstrategy, false AS amopreqcheck, "
"amopopr::pg_catalog.regoperator " "amopopr::pg_catalog.regoperator "
...@@ -8370,8 +8372,10 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo) ...@@ -8370,8 +8372,10 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
{ {
/* /*
* XXX RECHECK is gone as of 8.4, but we'll still print it if dumping * XXX RECHECK is gone as of 8.4, but we'll still print it if dumping
* an older server's table in which it is used. Would it be better * an older server's opclass in which it is used. This is to avoid
* to silently ignore it? * hard-to-detect breakage if a newer pg_dump is used to dump from
* an older server and then reload into that old version. This can
* go away once 8.3 is so old as to not be of interest to anyone.
*/ */
appendPQExpBuffer(query, "SELECT amopstrategy, false AS amopreqcheck, " appendPQExpBuffer(query, "SELECT amopstrategy, false AS amopreqcheck, "
"amopopr::pg_catalog.regoperator " "amopopr::pg_catalog.regoperator "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment