Re: GiST: PickSplit and multi-attr indexes

From: Neil Conway <neilc(at)samurai(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>, Teodor Sigaev <teodor(at)stack(dot)net>
Subject: Re: GiST: PickSplit and multi-attr indexes
Date: 2004-11-15 04:14:50
Message-ID: 1100492090.23420.28.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, 2004-11-14 at 18:54 -0500, Tom Lane wrote:
> It's probably just a hangover from the days when GiST didn't support
> multi-column indexes at all. I agree it should be changed.

I'm not sure the right way to fix it (at least without significant
changes to the GiST API). At present, the PickSplit() method is passed a
vector of GISTENTRYs and fills in a GIST_SPLITVEC. The GISTENTRYs
correspond to the first attributes of all the tuples in the node to be
split. There is no provision for the GiST extension to be informed about
any additional attributes in the index tuples. Even if we changed the
API to allow that, the GiST extension would have a hard time making a
reasonable decision in the multi-attribute case: the additional index
attributes could well be implemented using a different GiST extension.

> But note you will then have to cope with NULL values.

Yes -- I'm not sure offhand why GiST does not allow leading NULL values
in index attributes, but that ought to be fixed anyway.

-Neil

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2004-11-15 07:00:37 Re: MAX/MIN optimization via rewrite (plus query rewrites
Previous Message joseph speigle 2004-11-15 04:05:39 Re: psql \e broken again