From 82ae4f7a6ef78c9e04bc5abeeb0593b890ee454b Mon Sep 17 00:00:00 2001 From: kommih Date: Tue, 23 Oct 2018 15:42:57 +1100 Subject: [PATCH 1/2] scan start offset fix during analyze --- src/backend/access/heap/heapam_handler.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c index c0cfbe74b1..ae832e1f71 100644 --- a/src/backend/access/heap/heapam_handler.c +++ b/src/backend/access/heap/heapam_handler.c @@ -1742,7 +1742,7 @@ heapam_scan_analyze_next_tuple(TableScanDesc sscan, TransactionId OldestXmin, do { HeapScanDesc scan = (HeapScanDesc) sscan; Page targpage; - OffsetNumber targoffset = scan->rs_cindex; + OffsetNumber targoffset; OffsetNumber maxoffset; BufferHeapTupleTableSlot *hslot; @@ -1752,7 +1752,9 @@ heapam_scan_analyze_next_tuple(TableScanDesc sscan, TransactionId OldestXmin, do maxoffset = PageGetMaxOffsetNumber(targpage); /* Inner loop over all tuples on the selected page */ - for (targoffset = scan->rs_cindex; targoffset <= maxoffset; targoffset++) + for (targoffset = scan->rs_cindex ? scan->rs_cindex : FirstOffsetNumber; + targoffset <= maxoffset; + targoffset++) { ItemId itemid; HeapTuple targtuple = &hslot->base.tupdata; -- 2.18.0.windows.1