aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/storage/buffer/bufmgr.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index 007f7275ba2..1499659aef0 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.5 1996/11/08 05:58:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.6 1996/12/31 06:47:30 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1243,6 +1243,24 @@ ReleaseTmpRelBuffers(Relation tempreldesc)
int holding = 0;
BufferDesc *buf;
+ /*
+ * Is tempreldesc->rd_islocal == FALSE possible at all ?
+ * But I don't want to mess something now. - vadim 12/31/96
+ */
+ if ( tempreldesc->rd_islocal )
+ {
+ for (i = 0; i < NLocBuffer; i++)
+ {
+ buf = &LocalBufferDescriptors[i];
+ if ((buf->flags & BM_DIRTY) &&
+ (buf->tag.relId.relId == tempreldesc->rd_id))
+ {
+ buf->flags &= ~BM_DIRTY;
+ }
+ }
+ return;
+ }
+
for (i=1; i<=NBuffers; i++) {
buf = &BufferDescriptors[i-1];
if (!holding) {