aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gistscan.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-02-17 22:33:38 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-02-17 22:33:38 +0200
commitd17b6df239e6eebf288969e931cdbe8076d1fe12 (patch)
treef78a4d7a3354f9c5d0bef3fe9e60ee53f2295b81 /src/backend/access/gist/gistscan.c
parent2e105def09f27d49c1761abab06b427cfaa5d304 (diff)
downloadpostgresql-d17b6df239e6eebf288969e931cdbe8076d1fe12.tar.gz
postgresql-d17b6df239e6eebf288969e931cdbe8076d1fe12.zip
Fix knn-GiST queue comparison function to return heap tuples first.
The part of the comparison function that was supposed to keep heap tuples ahead of index items was backwards. It would not lead to incorrect results, but it is more efficient to return heap tuples first, before scanning more index pages, when both have the same distance. Alexander Korotkov
Diffstat (limited to 'src/backend/access/gist/gistscan.c')
-rw-r--r--src/backend/access/gist/gistscan.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c
index cc8d818e11d..991858ff43f 100644
--- a/src/backend/access/gist/gistscan.c
+++ b/src/backend/access/gist/gistscan.c
@@ -41,9 +41,9 @@ pairingheap_GISTSearchItem_cmp(const pairingheap_node *a, const pairingheap_node
/* Heap items go before inner pages, to ensure a depth-first search */
if (GISTSearchItemIsHeap(*sa) && !GISTSearchItemIsHeap(*sb))
- return -1;
- if (!GISTSearchItemIsHeap(*sa) && GISTSearchItemIsHeap(*sb))
return 1;
+ if (!GISTSearchItemIsHeap(*sa) && GISTSearchItemIsHeap(*sb))
+ return -1;
return 0;
}