* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.8 2007/02/01 04:16:07 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.9 2007/06/05 12:47:49 teodor Exp $
*-------------------------------------------------------------------------
*/
START_CRIT_SECTION();
btree->placeToPage(btree, stack->buffer, stack->off, &rdata);
+ MarkBufferDirty(stack->buffer);
+
if (!btree->index->rd_istemp)
{
XLogRecPtr recptr;
PageSetTLI(page, ThisTimeLineID);
}
- MarkBufferDirty(stack->buffer);
UnlockReleaseBuffer(stack->buffer);
END_CRIT_SECTION();
GinInitBuffer(stack->buffer, GinPageGetOpaque(newlpage)->flags & ~GIN_LEAF);
PageRestoreTempPage(newlpage, lpage);
btree->fillRoot(btree, stack->buffer, lbuffer, rbuffer);
+
+ MarkBufferDirty(rbuffer);
+ MarkBufferDirty(lbuffer);
+ MarkBufferDirty(stack->buffer);
+
if (!btree->index->rd_istemp)
{
XLogRecPtr recptr;
PageSetTLI(rpage, ThisTimeLineID);
}
- MarkBufferDirty(rbuffer);
UnlockReleaseBuffer(rbuffer);
- MarkBufferDirty(lbuffer);
UnlockReleaseBuffer(lbuffer);
- MarkBufferDirty(stack->buffer);
UnlockReleaseBuffer(stack->buffer);
END_CRIT_SECTION();
START_CRIT_SECTION();
PageRestoreTempPage(newlpage, lpage);
+
+ MarkBufferDirty(rbuffer);
+ MarkBufferDirty(stack->buffer);
+
if (!btree->index->rd_istemp)
{
XLogRecPtr recptr;
PageSetLSN(rpage, recptr);
PageSetTLI(rpage, ThisTimeLineID);
}
- MarkBufferDirty(rbuffer);
UnlockReleaseBuffer(rbuffer);
- MarkBufferDirty(stack->buffer);
END_CRIT_SECTION();
}
}
* 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 $
*-------------------------------------------------------------------------
*/
memcpy(GinDataPageGetData(page), items, sizeof(ItemPointerData) * nitems);
GinPageGetOpaque(page)->maxoff = nitems;
+ MarkBufferDirty(buffer);
+
if (!index->rd_istemp)
{
XLogRecPtr recptr;
}
- MarkBufferDirty(buffer);
UnlockReleaseBuffer(buffer);
END_CRIT_SECTION();
buffer = GinNewBuffer(index);
START_CRIT_SECTION();
GinInitBuffer(buffer, GIN_LEAF);
+ MarkBufferDirty(buffer);
+
if (!index->rd_istemp)
{
XLogRecPtr recptr;
}
- MarkBufferDirty(buffer);
UnlockReleaseBuffer(buffer);
END_CRIT_SECTION();
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.14 2007/06/04 15:56:28 teodor Exp $
+ * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.15 2007/06/05 12:47:49 teodor Exp $
*-------------------------------------------------------------------------
*/
pfree(cleaned);
GinPageGetOpaque(page)->maxoff = newMaxOff;
+ MarkBufferDirty(buffer);
xlogVacuumPage(gvs->index, buffer);
- MarkBufferDirty(buffer);
END_CRIT_SECTION();
/* if root is a leaf page, we don't desire further processing */
*/
GinPageGetOpaque(page)->flags = GIN_DELETED;
+ MarkBufferDirty(pBuffer);
+ if (leftBlkno != InvalidBlockNumber)
+ MarkBufferDirty(lBuffer);
+ MarkBufferDirty(dBuffer);
+
if (!gvs->index->rd_istemp)
{
XLogRecPtr recptr;
}
}
- MarkBufferDirty(pBuffer);
if (!isParentRoot)
LockBuffer(pBuffer, GIN_UNLOCK);
ReleaseBuffer(pBuffer);
if (leftBlkno != InvalidBlockNumber)
- {
- MarkBufferDirty(lBuffer);
UnlockReleaseBuffer(lBuffer);
- }
- MarkBufferDirty(dBuffer);
UnlockReleaseBuffer(dBuffer);
END_CRIT_SECTION();
{
START_CRIT_SECTION();
PageRestoreTempPage(resPage, page);
- xlogVacuumPage(gvs.index, buffer);
MarkBufferDirty(buffer);
+ xlogVacuumPage(gvs.index, buffer);
UnlockReleaseBuffer(buffer);
END_CRIT_SECTION();
}