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