diff options
Diffstat (limited to 'src/backend/storage/buffer/localbuf.c')
-rw-r--r-- | src/backend/storage/buffer/localbuf.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c index 2b5c72d9db1..9b335ae5845 100644 --- a/src/backend/storage/buffer/localbuf.c +++ b/src/backend/storage/buffer/localbuf.c @@ -15,7 +15,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.12 1997/09/18 20:21:22 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.13 1997/10/12 07:12:03 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -127,6 +127,7 @@ LocalBufferAlloc(Relation reln, BlockNumber blockNum, bool *foundPtr) smgrwrite(bufrel->rd_rel->relsmgr, bufrel, bufHdr->tag.blockNum, (char *) MAKE_PTR(bufHdr->data)); LocalBufferFlushCount++; + RelationDecrementReferenceCount(bufrel); } /* @@ -204,7 +205,8 @@ FlushLocalBuffer(Buffer buffer, bool release) smgrflush(bufrel->rd_rel->relsmgr, bufrel, bufHdr->tag.blockNum, (char *) MAKE_PTR(bufHdr->data)); LocalBufferFlushCount++; - + RelationDecrementReferenceCount(bufrel); + Assert(LocalRefCount[bufid] > 0); if (release) LocalRefCount[bufid]--; @@ -277,7 +279,8 @@ LocalBufferSync(void) smgrwrite(bufrel->rd_rel->relsmgr, bufrel, buf->tag.blockNum, (char *) MAKE_PTR(buf->data)); LocalBufferFlushCount++; - + RelationDecrementReferenceCount(bufrel); + buf->tag.relId.relId = InvalidOid; buf->flags &= ~BM_DIRTY; } |