aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/localbuf.c
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1997-10-12 07:12:03 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1997-10-12 07:12:03 +0000
commit14f81d8d3455933cc1756cccc702cc83a7a1ac84 (patch)
tree593e51e6d35ff73539497dcab9adb472611f491e /src/backend/storage/buffer/localbuf.c
parentdefb10a4503a83a5c48577e5aa7880d028f17211 (diff)
downloadpostgresql-14f81d8d3455933cc1756cccc702cc83a7a1ac84.tar.gz
postgresql-14f81d8d3455933cc1756cccc702cc83a7a1ac84.zip
Decrement relation reference count incremented in
RelationIdCacheGetRelation() to flush relations from cache in commit time.
Diffstat (limited to 'src/backend/storage/buffer/localbuf.c')
-rw-r--r--src/backend/storage/buffer/localbuf.c9
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;
}