From 09518fbdf445554f54e4c3cffc964fe2d073b550 Mon Sep 17 00:00:00 2001 From: Teodor Sigaev Date: Fri, 19 May 2006 17:15:41 +0000 Subject: [PATCH] Call MarkBufferDirty() before XLogInsert() during completion of insert --- src/backend/access/gist/gistxlog.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c index aef2056a34..c4291c01f8 100644 --- a/src/backend/access/gist/gistxlog.c +++ b/src/backend/access/gist/gistxlog.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.19 2006/05/19 16:15:17 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.20 2006/05/19 17:15:41 teodor Exp $ *------------------------------------------------------------------------- */ #include "postgres.h" @@ -753,14 +753,16 @@ gistContinueInsert(gistIncompleteInsert *insert) * for following possible replays */ - /* write pages with XLOG LSN */ + /* write pages, we should mark it dirty befor XLogInsert() */ + for (j = 0; j < numbuffer; j++) { + GistPageGetOpaque(pages[j])->rightlink = InvalidBlockNumber; + MarkBufferDirty(buffers[j]); + } recptr = XLogInsert(RM_GIST_ID, XLOG_GIST_PAGE_UPDATE, rdata); for (j = 0; j < numbuffer; j++) { PageSetLSN(pages[j], recptr); PageSetTLI(pages[j], ThisTimeLineID); - GistPageGetOpaque(pages[j])->rightlink = InvalidBlockNumber; - MarkBufferDirty(buffers[j]); } END_CRIT_SECTION(); -- 2.11.0