Re: KNN-GiST with recheck - Mailing list pgsql-hackers

From Alexander Korotkov
Subject Re: KNN-GiST with recheck
Date
Msg-id CAPpHfdtm=A3hrw4=mhNxN6U2Q9bx4BYDhW8gRLxgaZD3MAQKCA@mail.gmail.com
Whole thread Raw
In response to Re: KNN-GiST with recheck  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: KNN-GiST with recheck
List pgsql-hackers
On Tue, Dec 16, 2014 at 4:37 PM, Heikki Linnakangas <hlinnakangas@vmware.com> wrote:
Patch attached. It should be applied on top of my pairing heap patch at http://www.postgresql.org/message-id/548FFA2C.7060000@vmware.com. Some caveats:

* The signature of the distance function is unchanged, it doesn't get a recheck argument. It is just assumed that if the consistent function sets the recheck flag, then the distance needs to be rechecked as well. We might want to add the recheck argument, like you Alexander did in your patch, but it's not important right now.
 
I didn't get how that expected to work if we have only order by qual without filter qual. In this case consistent function just isn't called at all.

* I used the "distance" term in the executor, although the ORDER BY expr machinery is more general than that. The value returned by the ORDER BY expression doesn't have to be a distance, although that's the only thing supported by GiST and the built-in opclasses.

* I short-circuited the planner to assume that the ORDER BY expression always returns a float. That's true today for knn-GiST, but is obviously a bogus assumption in general.

This needs some work to get into a committable state, but from a modularity point of view, this is much better than having the indexam to peek into the heap.

Nice idea to put reordering into index scan node. Doesn't look like much of overengineering. I'm going to bring it to more commitable state.

------
With best regards,
Alexander Korotkov.

pgsql-hackers by date:

Previous
From: Alexander Korotkov
Date:
Subject: Re: Fillfactor for GIN indexes
Next
From: Peter Eisentraut
Date:
Subject: Re: Turning recovery.conf into GUCs