From ae753b86b58a9c7d9d88ef1c0270bdf01aa16cb0 Mon Sep 17 00:00:00 2001 From: "Vadim B. Mikheev" Date: Tue, 31 Dec 1996 06:47:30 +0000 Subject: [PATCH] ReleaseTmpRelBuffers () releases buffers in LOCAL buffer pool now (if rd_islocal is true). --- src/backend/storage/buffer/bufmgr.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 007f7275ba..1499659aef 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) {