From 8e2b71d2d0381f7acc820a2400580a1e3a6add8c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 30 Aug 2013 19:15:21 -0400 Subject: Reset the binary heap in MergeAppend rescans. Failing to do so can cause queries to return wrong data, error out or crash. This requires adding a new binaryheap_reset() method to binaryheap.c, but that probably should have been there anyway. Per bug #8410 from Terje Elde. Diagnosis and patch by Andres Freund. --- src/backend/executor/nodeMergeAppend.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/backend/executor') diff --git a/src/backend/executor/nodeMergeAppend.c b/src/backend/executor/nodeMergeAppend.c index 5a48f7ab13b..c3edd618591 100644 --- a/src/backend/executor/nodeMergeAppend.c +++ b/src/backend/executor/nodeMergeAppend.c @@ -297,5 +297,6 @@ ExecReScanMergeAppend(MergeAppendState *node) if (subnode->chgParam == NULL) ExecReScan(subnode); } + binaryheap_reset(node->ms_heap); node->ms_initialized = false; } -- cgit v1.2.3