diff options
author | Teodor Sigaev <teodor@sigaev.ru> | 2006-05-19 17:15:41 +0000 |
---|---|---|
committer | Teodor Sigaev <teodor@sigaev.ru> | 2006-05-19 17:15:41 +0000 |
commit | 09518fbdf445554f54e4c3cffc964fe2d073b550 (patch) | |
tree | 904a70f7328de71d85195691856f58b146020f18 /src | |
parent | 420cbff8813dd5b1390a1602331b57fbc4fbb899 (diff) | |
download | postgresql-09518fbdf445554f54e4c3cffc964fe2d073b550.tar.gz postgresql-09518fbdf445554f54e4c3cffc964fe2d073b550.zip |
Call MarkBufferDirty() before XLogInsert() during completion of insert
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/access/gist/gistxlog.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c index aef2056a34d..c4291c01f81 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(); |