aboutsummaryrefslogtreecommitdiff
path: root/src/include/storage/buf.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-06-09 18:16:59 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-06-09 18:16:59 +0000
commitbdadc9bf1c0900487c372f2403c7c064d177d68c (patch)
treea64acd263294e66f91b8f5868f083b75fb5c8507 /src/include/storage/buf.h
parent32479891305bb80f428f189d48a1661dbe39d4f4 (diff)
downloadpostgresql-bdadc9bf1c0900487c372f2403c7c064d177d68c.tar.gz
postgresql-bdadc9bf1c0900487c372f2403c7c064d177d68c.zip
Remove RelationGetBufferWithBuffer(), which is horribly confused about
appropriate pin-count manipulation, and instead use ReleaseAndReadBuffer. Make use of the fact that the passed-in buffer (if there is one) must be pinned to avoid grabbing the bufmgr spinlock when we are able to return this same buffer. Eliminate unnecessary 'previous tuple' and 'next tuple' fields of HeapScanDesc and IndexScanDesc, thereby removing a whole lot of bookkeeping from heap_getnext() and related routines.
Diffstat (limited to 'src/include/storage/buf.h')
-rw-r--r--src/include/storage/buf.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/include/storage/buf.h b/src/include/storage/buf.h
index c65e4cc9975..f31d5d5cc8d 100644
--- a/src/include/storage/buf.h
+++ b/src/include/storage/buf.h
@@ -7,17 +7,22 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: buf.h,v 1.8 2001/01/24 19:43:27 momjian Exp $
+ * $Id: buf.h,v 1.9 2001/06/09 18:16:59 tgl Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef BUF_H
#define BUF_H
-#define InvalidBuffer (0)
-#define UnknownBuffer (-99999)
+/*
+ * Buffer identifiers.
+ *
+ * Zero is invalid, positive is the index of a shared buffer (1..NBuffers),
+ * negative is the index of a local buffer (-1 .. -NLocBuffer).
+ */
+typedef int Buffer;
-typedef long Buffer;
+#define InvalidBuffer 0
/*
* BufferIsInvalid
@@ -26,12 +31,6 @@ typedef long Buffer;
#define BufferIsInvalid(buffer) ((buffer) == InvalidBuffer)
/*
- * BufferIsUnknown
- * True iff the buffer is unknown.
- */
-#define BufferIsUnknown(buffer) ((buffer) == UnknownBuffer)
-
-/*
* BufferIsLocal
* True iff the buffer is local (not visible to other servers).
*/