summaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
authorHeikki Linnakangas2015-05-25 11:42:21 +0000
committerHeikki Linnakangas2015-05-25 11:48:29 +0000
commit12e6c5a6cae1e34da2d320390993010b6e15ba9e (patch)
treeffedf992a3a94362c4cb7b8a103d9cfbb36e601c /src/backend/executor
parent266b6984cd7391e42770ca3a9922a9e8b1d4d7d3 (diff)
Fix rescan of IndexScan node with the new lossy GiST distance functions.
Must reset the "reached end" flag and reorder queue at rescan. Per report from Regina Obe, bug #13349
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/nodeIndexscan.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index 7fd90415f96..c0f14dbfa9d 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -532,10 +532,18 @@ ExecReScanIndexScan(IndexScanState *node)
}
node->iss_RuntimeKeysReady = true;
+ /* flush the reorder queue */
+ if (node->iss_ReorderQueue)
+ {
+ while (!pairingheap_is_empty(node->iss_ReorderQueue))
+ reorderqueue_pop(node);
+ }
+
/* reset index scan */
index_rescan(node->iss_ScanDesc,
node->iss_ScanKeys, node->iss_NumScanKeys,
node->iss_OrderByKeys, node->iss_NumOrderByKeys);
+ node->iss_ReachedEnd = false;
ExecScanReScan(&node->ss);
}