From 82ae4f7a6ef78c9e04bc5abeeb0593b890ee454b Mon Sep 17 00:00:00 2001
From: kommih <haribabuk@fast.au.fujitsu.com>
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

