Re: Retiring support for pre-7.3 FK constraint triggers

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Daniel Gustafsson <daniel@yesql.se>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-03-05T18:36:56Z
Lists: pgsql-hackers
On 2020-Mar-05, Tom Lane wrote:

> As long as we're thinking of zapping code that is long past its sell-by
> date, I propose getting rid of this stanza in indexcmds.c, which
> basically causes CREATE INDEX to ignore certain opclass specifications:

I agree, this should be fine to remove.

> Elsewhere in indexcmds.c, there's this:
> 
>         /*
>          * Hack to provide more-or-less-transparent updating of old RTREE
>          * indexes to GiST: if RTREE is requested and not found, use GIST.
>          */
>         if (strcmp(accessMethodName, "rtree") == 0)
>         {
>             ereport(NOTICE,
>                     (errmsg("substituting access method \"gist\" for obsolete method \"rtree\"")));
>             accessMethodName = "gist";
>             tuple = SearchSysCache1(AMNAME, PointerGetDatum(accessMethodName));
>         }
> 
> which dates to 8.2 (2a8d3d83e of 2005-11-07).  This is less bad than the
> other thing, since it won't affect the behavior of any command that
> wouldn't otherwise just fail; but maybe its time has passed as well?
> Although Alvaro's point comparing these behaviors to pg_dump's support
> cutoff of 8.0 suggests that maybe we should leave this one for now.

Yeah, dunno, 'rtree' is even immortalized in tests; commit f2e403803fe6
as recently as March 2019 was seen modifying that.

(Another curious factoid is that SQLite supports something that vaguely
looks rtreeish https://sqlite.org/rtree.html -- However, because it
doesn't use the same syntax Postgres uses, it's not a point against
removing our hack.)

I guess we can wait a couple years more on that one, since it's not
damaging anything anyway.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Remove ancient hacks to ignore certain opclass names in CREATE INDEX.

  2. Remove ancient support for upgrading pre-7.3 foreign key constraints.

  3. Support for INCLUDE attributes in GiST indexes

  4. Remove pg_dump/pg_dumpall support for dumping from pre-8.0 servers.

  5. Teach CREATE CONSTRAINT TRIGGER to convert old-style foreign key