On Tue, Dec 16, 2014 at 4:37 PM, Heikki Linnakangas <hlinnakan...@vmware.com > wrote:
> Patch attached. It should be applied on top of my pairing heap patch at > http://www.postgresql.org/message-id/548ffa2c.7060...@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.