mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-07 19:47:50 +08:00
Remove obsolete nbtree split REDO routine comment.
Commit dd299df818
, which added suffix truncation to nbtree, simplified
the WAL record format used by page splits. It became necessary to
explicitly WAL-log the new high key for the left half of a split in all
cases, which relieved the REDO routine from having to reconstruct a new
high key for the left page by copying the first item from the right
page. Remove a comment that referred to the previous practice.
This commit is contained in:
parent
61639816b8
commit
d95e36dc38
@ -248,8 +248,6 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
|
||||
PageSetLSN(rpage, lsn);
|
||||
MarkBufferDirty(rbuf);
|
||||
|
||||
/* don't release the buffer yet; we touch right page's first item below */
|
||||
|
||||
/* Now reconstruct left (original) sibling page */
|
||||
if (XLogReadBufferForRedo(record, 0, &lbuf) == BLK_NEEDS_REDO)
|
||||
{
|
||||
@ -257,10 +255,9 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
|
||||
* To retain the same physical order of the tuples that they had, we
|
||||
* initialize a temporary empty page for the left page and add all the
|
||||
* items to that in item number order. This mirrors how _bt_split()
|
||||
* works. It's not strictly required to retain the same physical
|
||||
* order, as long as the items are in the correct item number order,
|
||||
* but it helps debugging. See also _bt_restore_page(), which does
|
||||
* the same for the right page.
|
||||
* works. Retaining the same physical order makes WAL consistency
|
||||
* checking possible. See also _bt_restore_page(), which does the
|
||||
* same for the right page.
|
||||
*/
|
||||
Page lpage = (Page) BufferGetPage(lbuf);
|
||||
BTPageOpaque lopaque = (BTPageOpaque) PageGetSpecialPointer(lpage);
|
||||
@ -345,7 +342,10 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
|
||||
MarkBufferDirty(lbuf);
|
||||
}
|
||||
|
||||
/* We no longer need the buffers */
|
||||
/*
|
||||
* We no longer need the buffers. They must be released together, so that
|
||||
* readers cannot observe two inconsistent halves.
|
||||
*/
|
||||
if (BufferIsValid(lbuf))
|
||||
UnlockReleaseBuffer(lbuf);
|
||||
UnlockReleaseBuffer(rbuf);
|
||||
|
Loading…
Reference in New Issue
Block a user