aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/gin/gininsert.c
diff options
context:
space:
mode:
authorTeodor Sigaev <teodor@sigaev.ru>2007-06-05 12:47:49 +0000
committerTeodor Sigaev <teodor@sigaev.ru>2007-06-05 12:47:49 +0000
commitf74426283d9a5d889c310e3844ef850622203d7e (patch)
treee531bd49453a2fe2fb1a1a83090a379eff0d7c27 /src/backend/access/gin/gininsert.c
parent4c0fe5127946715005a49a28be85a5f7597b9618 (diff)
downloadpostgresql-f74426283d9a5d889c310e3844ef850622203d7e.tar.gz
postgresql-f74426283d9a5d889c310e3844ef850622203d7e.zip
Move call of MarkBufferDirty() before XLogInsert() as required.
Many thanks to Heikki Linnakangas <heikki@enterprisedb.com> for his sharp eyes.
Diffstat (limited to 'src/backend/access/gin/gininsert.c')
-rw-r--r--src/backend/access/gin/gininsert.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c
index 1d4d57c0d4e..db5fa68338a 100644
--- a/src/backend/access/gin/gininsert.c
+++ b/src/backend/access/gin/gininsert.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/gininsert.c,v 1.8 2007/02/01 04:16:08 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/gininsert.c,v 1.9 2007/06/05 12:47:49 teodor Exp $
*-------------------------------------------------------------------------
*/
@@ -48,6 +48,8 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * nitems);
GinPageGetOpaque(page)->maxoff = nitems;
+ MarkBufferDirty(buffer);
+
if (!index->rd_istemp)
{
XLogRecPtr recptr;
@@ -76,7 +78,6 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
}
- MarkBufferDirty(buffer);
UnlockReleaseBuffer(buffer);
END_CRIT_SECTION();
@@ -281,6 +282,8 @@ ginbuild(PG_FUNCTION_ARGS)
buffer = GinNewBuffer(index);
START_CRIT_SECTION();
GinInitBuffer(buffer, GIN_LEAF);
+ MarkBufferDirty(buffer);
+
if (!index->rd_istemp)
{
XLogRecPtr recptr;
@@ -301,7 +304,6 @@ ginbuild(PG_FUNCTION_ARGS)
}
- MarkBufferDirty(buffer);
UnlockReleaseBuffer(buffer);
END_CRIT_SECTION();