mirror of
https://github.com/postgres/postgres.git
synced 2025-11-12 05:01:15 +03:00
Remove PageSetTLI and rename pd_tli to pd_checksum
Remove use of PageSetTLI() from all page manipulation functions and adjust README to indicate change in the way we make changes to pages. Repurpose those bytes into the pd_checksum field and explain how that works in comments about page header. Refactoring ahead of actual feature patch which would make use of the checksum field, arriving later. Jeff Davis, with comments and doc changes by Simon Riggs Direction suggested by Robert Haas; many others providing review comments.
This commit is contained in:
@@ -308,7 +308,6 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_INSERT, rdata);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
|
||||
LockBuffer(stack->buffer, GIN_UNLOCK);
|
||||
@@ -377,11 +376,8 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_SPLIT, rdata);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
PageSetLSN(lpage, recptr);
|
||||
PageSetTLI(lpage, ThisTimeLineID);
|
||||
PageSetLSN(rpage, recptr);
|
||||
PageSetTLI(rpage, ThisTimeLineID);
|
||||
}
|
||||
|
||||
UnlockReleaseBuffer(rbuffer);
|
||||
@@ -426,9 +422,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_SPLIT, rdata);
|
||||
PageSetLSN(lpage, recptr);
|
||||
PageSetTLI(lpage, ThisTimeLineID);
|
||||
PageSetLSN(rpage, recptr);
|
||||
PageSetTLI(rpage, ThisTimeLineID);
|
||||
}
|
||||
UnlockReleaseBuffer(rbuffer);
|
||||
END_CRIT_SECTION();
|
||||
|
||||
@@ -127,7 +127,6 @@ writeListPage(Relation index, Buffer buffer,
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_INSERT_LISTPAGE, rdata);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
|
||||
/* get free space before releasing buffer */
|
||||
@@ -408,12 +407,10 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_UPDATE_META_PAGE, rdata);
|
||||
PageSetLSN(metapage, recptr);
|
||||
PageSetTLI(metapage, ThisTimeLineID);
|
||||
|
||||
if (buffer != InvalidBuffer)
|
||||
{
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -594,13 +591,11 @@ shiftList(Relation index, Buffer metabuffer, BlockNumber newHead,
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_DELETE_LISTPAGE, rdata);
|
||||
PageSetLSN(metapage, recptr);
|
||||
PageSetTLI(metapage, ThisTimeLineID);
|
||||
|
||||
for (i = 0; i < data.ndeleted; i++)
|
||||
{
|
||||
page = BufferGetPage(buffers[i]);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,6 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems)
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_PTREE, rdata);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
|
||||
UnlockReleaseBuffer(buffer);
|
||||
@@ -431,11 +430,9 @@ ginbuild(PG_FUNCTION_ARGS)
|
||||
|
||||
page = BufferGetPage(RootBuffer);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
|
||||
page = BufferGetPage(MetaBuffer);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
|
||||
UnlockReleaseBuffer(MetaBuffer);
|
||||
|
||||
@@ -593,7 +593,6 @@ ginUpdateStats(Relation index, const GinStatsData *stats)
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_UPDATE_META_PAGE, &rdata);
|
||||
PageSetLSN(metapage, recptr);
|
||||
PageSetTLI(metapage, ThisTimeLineID);
|
||||
}
|
||||
|
||||
UnlockReleaseBuffer(metabuffer);
|
||||
|
||||
@@ -147,7 +147,6 @@ xlogVacuumPage(Relation index, Buffer buffer)
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_VACUUM_PAGE, rdata);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
|
||||
static bool
|
||||
@@ -350,14 +349,11 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
|
||||
|
||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_DELETE_PAGE, rdata);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
PageSetLSN(parentPage, recptr);
|
||||
PageSetTLI(parentPage, ThisTimeLineID);
|
||||
if (leftBlkno != InvalidBlockNumber)
|
||||
{
|
||||
page = BufferGetPage(lBuffer);
|
||||
PageSetLSN(page, recptr);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,6 @@ ginRedoCreateIndex(XLogRecPtr lsn, XLogRecord *record)
|
||||
GinInitMetabuffer(MetaBuffer);
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(MetaBuffer);
|
||||
|
||||
RootBuffer = XLogReadBuffer(*node, GIN_ROOT_BLKNO, true);
|
||||
@@ -97,7 +96,6 @@ ginRedoCreateIndex(XLogRecPtr lsn, XLogRecord *record)
|
||||
GinInitBuffer(RootBuffer, GIN_LEAF);
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(RootBuffer);
|
||||
|
||||
UnlockReleaseBuffer(RootBuffer);
|
||||
@@ -124,7 +122,6 @@ ginRedoCreatePTree(XLogRecPtr lsn, XLogRecord *record)
|
||||
GinPageGetOpaque(page)->maxoff = data->nitem;
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
|
||||
MarkBufferDirty(buffer);
|
||||
UnlockReleaseBuffer(buffer);
|
||||
@@ -242,7 +239,6 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record)
|
||||
}
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
|
||||
MarkBufferDirty(buffer);
|
||||
}
|
||||
@@ -333,11 +329,9 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
|
||||
}
|
||||
|
||||
PageSetLSN(rpage, lsn);
|
||||
PageSetTLI(rpage, ThisTimeLineID);
|
||||
MarkBufferDirty(rbuffer);
|
||||
|
||||
PageSetLSN(lpage, lsn);
|
||||
PageSetTLI(lpage, ThisTimeLineID);
|
||||
MarkBufferDirty(lbuffer);
|
||||
|
||||
if (!data->isLeaf && data->updateBlkno != InvalidBlockNumber)
|
||||
@@ -362,7 +356,6 @@ ginRedoSplit(XLogRecPtr lsn, XLogRecord *record)
|
||||
}
|
||||
|
||||
PageSetLSN(rootPage, lsn);
|
||||
PageSetTLI(rootPage, ThisTimeLineID);
|
||||
|
||||
MarkBufferDirty(rootBuf);
|
||||
UnlockReleaseBuffer(rootBuf);
|
||||
@@ -424,7 +417,6 @@ ginRedoVacuumPage(XLogRecPtr lsn, XLogRecord *record)
|
||||
}
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(buffer);
|
||||
}
|
||||
|
||||
@@ -453,7 +445,6 @@ ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record)
|
||||
Assert(GinPageIsData(page));
|
||||
GinPageGetOpaque(page)->flags = GIN_DELETED;
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(dbuffer);
|
||||
}
|
||||
}
|
||||
@@ -473,7 +464,6 @@ ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record)
|
||||
Assert(!GinPageIsLeaf(page));
|
||||
GinPageDeletePostingItem(page, data->parentOffset);
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(pbuffer);
|
||||
}
|
||||
}
|
||||
@@ -492,7 +482,6 @@ ginRedoDeletePage(XLogRecPtr lsn, XLogRecord *record)
|
||||
Assert(GinPageIsData(page));
|
||||
GinPageGetOpaque(page)->rightlink = data->rightLink;
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(lbuffer);
|
||||
}
|
||||
UnlockReleaseBuffer(lbuffer);
|
||||
@@ -522,7 +511,6 @@ ginRedoUpdateMetapage(XLogRecPtr lsn, XLogRecord *record)
|
||||
{
|
||||
memcpy(GinPageGetMeta(metapage), &data->metadata, sizeof(GinMetaPageData));
|
||||
PageSetLSN(metapage, lsn);
|
||||
PageSetTLI(metapage, ThisTimeLineID);
|
||||
MarkBufferDirty(metabuffer);
|
||||
}
|
||||
|
||||
@@ -569,7 +557,6 @@ ginRedoUpdateMetapage(XLogRecPtr lsn, XLogRecord *record)
|
||||
GinPageGetOpaque(page)->maxoff++;
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(buffer);
|
||||
}
|
||||
UnlockReleaseBuffer(buffer);
|
||||
@@ -595,7 +582,6 @@ ginRedoUpdateMetapage(XLogRecPtr lsn, XLogRecord *record)
|
||||
GinPageGetOpaque(page)->rightlink = data->newRightlink;
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(buffer);
|
||||
}
|
||||
UnlockReleaseBuffer(buffer);
|
||||
@@ -655,7 +641,6 @@ ginRedoInsertListPage(XLogRecPtr lsn, XLogRecord *record)
|
||||
}
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(buffer);
|
||||
|
||||
UnlockReleaseBuffer(buffer);
|
||||
@@ -681,7 +666,6 @@ ginRedoDeleteListPages(XLogRecPtr lsn, XLogRecord *record)
|
||||
{
|
||||
memcpy(GinPageGetMeta(metapage), &data->metadata, sizeof(GinMetaPageData));
|
||||
PageSetLSN(metapage, lsn);
|
||||
PageSetTLI(metapage, ThisTimeLineID);
|
||||
MarkBufferDirty(metabuffer);
|
||||
}
|
||||
|
||||
@@ -708,7 +692,6 @@ ginRedoDeleteListPages(XLogRecPtr lsn, XLogRecord *record)
|
||||
GinPageGetOpaque(page)->flags = GIN_DELETED;
|
||||
|
||||
PageSetLSN(page, lsn);
|
||||
PageSetTLI(page, ThisTimeLineID);
|
||||
MarkBufferDirty(buffer);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user