From 3dec14197bba4013e8688dfeea452388a9846587 Mon Sep 17 00:00:00 2001
From: Hiroshi Inoue <inoue@tpf.co.jp>
Date: Wed, 9 Feb 2000 03:49:47 +0000
Subject: [PATCH] Enable backward sequential scan even after reaching EOF.

---
 src/backend/access/heap/heapam.c | 22 +---------------------
 1 file changed, 1 insertion(+), 21 deletions(-)

diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index cc503c32511..d51705fa472 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.65 2000/01/26 05:55:56 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.66 2000/02/09 03:49:47 inoue Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -848,11 +848,6 @@ heap_getnext(HeapScanDesc scandesc, int backw)
 		if (scan->rs_ptup.t_data == scan->rs_ctup.t_data &&
 			BufferIsInvalid(scan->rs_pbuf))
 		{
-			if (BufferIsValid(scan->rs_nbuf))
-				ReleaseBuffer(scan->rs_nbuf);
-			scan->rs_ntup.t_datamcxt = NULL;
-			scan->rs_ntup.t_data = NULL;
-			scan->rs_nbuf = UnknownBuffer;
 			return NULL;
 		}
 
@@ -910,11 +905,6 @@ heap_getnext(HeapScanDesc scandesc, int backw)
 			scan->rs_ptup.t_datamcxt = NULL;
 			scan->rs_ptup.t_data = NULL;
 			scan->rs_pbuf = InvalidBuffer;
-			if (BufferIsValid(scan->rs_nbuf))
-				ReleaseBuffer(scan->rs_nbuf);
-			scan->rs_ntup.t_datamcxt = NULL;
-			scan->rs_ntup.t_data = NULL;
-			scan->rs_nbuf = InvalidBuffer;
 			return NULL;
 		}
 
@@ -934,11 +924,6 @@ heap_getnext(HeapScanDesc scandesc, int backw)
 		if (scan->rs_ctup.t_data == scan->rs_ntup.t_data &&
 			BufferIsInvalid(scan->rs_nbuf))
 		{
-			if (BufferIsValid(scan->rs_pbuf))
-				ReleaseBuffer(scan->rs_pbuf);
-			scan->rs_ptup.t_datamcxt = NULL;
-			scan->rs_ptup.t_data = NULL;
-			scan->rs_pbuf = UnknownBuffer;
 			HEAPDEBUG_3;		/* heap_getnext returns NULL at end */
 			return NULL;
 		}
@@ -998,11 +983,6 @@ heap_getnext(HeapScanDesc scandesc, int backw)
 			scan->rs_ntup.t_datamcxt = NULL;
 			scan->rs_ntup.t_data = NULL;
 			scan->rs_nbuf = InvalidBuffer;
-			if (BufferIsValid(scan->rs_pbuf))
-				ReleaseBuffer(scan->rs_pbuf);
-			scan->rs_ptup.t_datamcxt = NULL;
-			scan->rs_ptup.t_data = NULL;
-			scan->rs_pbuf = InvalidBuffer;
 			HEAPDEBUG_6;		/* heap_getnext returning EOS */
 			return NULL;
 		}
-- 
GitLab