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