Removing <@ from contrib/intarray's GiST opclasses

Started by Tom Laneover 5 years ago1 messageshackers
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

As previously discussed at [1]/messages/by-id/458.1565114141@sss.pgh.pa.us, contrib/intarray's GiST opclasses
do not index empty arrays in a useful way, meaning that
"indexedcol <@ something" has to do a full-index search to ensure
that it finds empty arrays, which such a query should always find.
We'd be better off to not consider <@ indexable at all by these
opclasses, but removing it has been problematic because of
dependencies [2]/messages/by-id/4578.1565195302@sss.pgh.pa.us. Now that commit 9f9682783 is in, the dependency
problem is fixed, so here are a couple of patches to remove the
operator's opclass membership.

Patch 0001 is a minimal patch to just drop the opclass membership.
We could do that and stop there, but if we do, <@ searches will
continue to be slow until people think to update their extensions
(which pg_upgrade does nothing to encourage). Alternatively,
we could replace the now-dead support code with something that
throws an error telling people to update the extension, as in 0002.

I'm honestly not sure whether 0002 is a good idea or not. Thoughts?

regards, tom lane

[1]: /messages/by-id/458.1565114141@sss.pgh.pa.us
[2]: /messages/by-id/4578.1565195302@sss.pgh.pa.us

Attachments:

0001-remove-contained-by-operators.patchtext/x-diff; charset=us-ascii; name=0001-remove-contained-by-operators.patchDownload+24-2
0002-remove-contained-by-support.patchtext/x-diff; charset=us-ascii; name=0002-remove-contained-by-support.patchDownload+25-43