Re: GiST support for inet datatypes - Mailing list pgsql-hackers

From Tom Lane
Subject Re: GiST support for inet datatypes
Date
Msg-id 17751.1392853062@sss.pgh.pa.us
Whole thread Raw
In response to Re: GiST support for inet datatypes  (Emre Hasegeli <emre@hasegeli.com>)
Responses Re: GiST support for inet datatypes  (Emre Hasegeli <emre@hasegeli.com>)
Re: GiST support for inet datatypes  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
Emre Hasegeli <emre@hasegeli.com> writes:
> [ cites bug #5705 ]

Hm.  I had forgotten how thoroughly broken btree_gist's inet and cidr
opclasses are.  There was discussion at the time of just ripping them
out despite the compatibility hit.  We didn't do it, but if we had
then life would be simpler now.

Perhaps it would be acceptable to drop the btree_gist implementation
and teach pg_upgrade to refuse to upgrade if the old database contains
any such indexes.  I'm not sure that solves the problem, though, because
I think pg_upgrade will still fail if the opclass is in the old database
even though unused (because you'll get the complaint about multiple
default opclasses anyway).  The only simple way to avoid that is to not
have btree_gist loaded at all in the old DB, and I doubt that's an
acceptable upgrade restriction.  It would require dropping indexes of
the other types supported by btree_gist, which would be a pretty hard
sell since those aren't broken.

Really what we'd need here is for btree_gist to be upgraded to a version
that doesn't define gist_inet_ops (or at least doesn't mark it as default)
*before* pg_upgrading to a server version containing the proposed new
implementation.  Not sure how workable that is.  Could we get away with
having pg_upgrade unset the default flag in the old database?
(Ick, but there are no very good alternatives here ...)

BTW, I'd not been paying any attention to this thread, but now that
I scan through it, I think the proposal to change the longstanding
names of the inet operators has zero chance of being accepted.
Consistency with the names chosen for range operators is a mighty
weak argument compared to backwards compatibility.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: pg_standby: Question about truncation of trigger file in fast failover
Next
From: Andres Freund
Date:
Subject: Re: should we add a XLogRecPtr/LSN SQL type?