diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 007f7275ba203721300b48f14797b556f5b71f2d..1499659aef05e80e346740d82d4a7b0157d3b66d 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) {