Re: [HACKERS] Index only scan for cube and seg
От | Alexander Korotkov |
---|---|
Тема | Re: [HACKERS] Index only scan for cube and seg |
Дата | |
Msg-id | CAPpHfdvaL3YFRzy7=BDLPRCpWP4=X4SuX7jHLQBdFrOkD2-WCA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Index only scan for cube and seg (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] Index only scan for cube and seg
|
Список | 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
В списке pgsql-hackers по дате отправления: