Re: Index only scan for cube and seg
Alexander Korotkov <a.korotkov@postgrespro.ru>
From: Alexander Korotkov <a.korotkov@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>,
Andrey Borodin <x4mmm@yandex-team.ru>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-10-28T21:24:04Z
Lists: pgsql-hackers
On Fri, Oct 27, 2017 at 9:54 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: > > On Thu, Oct 26, 2017 at 12:22 PM, Andrey Borodin <x4mmm@yandex-team.ru> > wrote: > >> For cube there is new default opclass. > > > I seem to recall that changing the default opclass causes unsolvable > > problems with upgrades. You might want to check the archives for > > previous discussions of this issue; unfortunately, I don't recall the > > details off-hand. > > Quite aside from that, replacing the opclass with a new one creates > user-visible headaches that I don't think are justified, i.e. having to > reconstruct indexes in order to get the benefit. > > Maybe I'm missing something, but ISTM you could just drop the compress > function and call it good. This would mean that an IOS scan would > sometimes hand back a toast-compressed value, but what's the problem > with that? > +1, I think in this case replacing default opclass or even duplicating opclass isn't justified. (The only reason for making a decompress function that just detoasts > is that your other support functions then do not have to consider > the possibility that they're handed a toast-compressed value. I have > not checked whether that really matters for cube.) > As I can see, cube GiST code always uses DatumGetNDBOX() macro to transform Datum to (NDBOX *). #define DatumGetNDBOX(x) ((NDBOX *) PG_DETOAST_DATUM(x)) Thus, it should be safe to just remove both compress/decompress methods from existing opclass. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Commits
-
Support index-only scans in contrib/cube and contrib/seg GiST indexes.
- de1d042f5979 11.0 landed