On Fri, Sep 26, 2014 at 5:18 AM, Bruce Momjian <br...@momjian.us> wrote:
> On Sun, Sep 14, 2014 at 11:34:26PM +0400, Alexander Korotkov wrote: > > > Cost estimation of GiST is a big problem anyway. It doesn't care > (and > > > can't) about amount of recheck for regular operators. In this > patch, same > > > would be for knn recheck. The problem is that touching heap from > access > > This is very important work. While our existing KNN-GiST index code > works fine for scalar values and point-to-point distance ordering, it > doesn't work well for 2-dimensional objects because they are only > indexed by their bounding boxes (a rectangle around the object). The > indexed bounding box can't produce accurate distances to other objects. > > As an example, see this PostGIS blog post showing how to use LIMIT in a > CTE to filter results and then compute the closest object (search for > "LIMIT 50"): > > > http://shisaa.jp/postset/postgis-postgresqls-spatial-partner-part-3.html > > This patch fixes our code for distances from a point to indexed 2-D > objects. > > Does this also fix the identical PostGIS problem or is there something > PostGIS needs to do? > This patch provides general infrastructure for recheck in KNN-GiST. PostGIS need corresponding change in its GiST opclass. Since PostGIS already define <-> and <#> operators as distance to bounding box border and bounding box center, it can't change their behaviour. it has to support new operator "exact distance" in opclass. ------ With best regards, Alexander Korotkov.