diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c index 7fd90415f96d0ccd12cdd065066f3c0abf1893ca..c0f14dbfa9d566f4c47973f2f5d01cb52c699cab 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); }