aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Geoghegan <pg@bowt.ie>2019-09-12 15:44:59 -0700
committerPeter Geoghegan <pg@bowt.ie>2019-09-12 15:44:59 -0700
commit9064cc139d10d6e45a370dd8761a02f7e7da36f4 (patch)
tree1d435d4b75d246dacf4e6b1e5c1d96b3c304ee1c
parentaee5736f154061a6ea61de59bc88c3aa9ed6fc67 (diff)
downloadpostgresql-9064cc139d10d6e45a370dd8761a02f7e7da36f4.tar.gz
postgresql-9064cc139d10d6e45a370dd8761a02f7e7da36f4.zip
Fix nbtree page split rmgr desc routine.
Include newitemoff in rmgr desc output for nbtree page split records. In passing, correct an obsolete comment that claimed that newitemoff is only logged for _L variant nbtree page split WAL records. Both issues were oversights in commit 2c03216d831, which revamped the WAL format. Author: Peter Geoghegan Backpatch: 9.5-, where the WAL format was revamped.
-rw-r--r--src/backend/access/rmgrdesc/nbtdesc.c4
-rw-r--r--src/include/access/nbtree.h12
2 files changed, 8 insertions, 8 deletions
diff --git a/src/backend/access/rmgrdesc/nbtdesc.c b/src/backend/access/rmgrdesc/nbtdesc.c
index a713d7f222b..66ed163b978 100644
--- a/src/backend/access/rmgrdesc/nbtdesc.c
+++ b/src/backend/access/rmgrdesc/nbtdesc.c
@@ -40,8 +40,8 @@ btree_desc(StringInfo buf, XLogReaderState *record)
{
xl_btree_split *xlrec = (xl_btree_split *) rec;
- appendStringInfo(buf, "level %u, firstright %d",
- xlrec->level, xlrec->firstright);
+ appendStringInfo(buf, "level %u, firstright %d, newitemoff %d",
+ xlrec->level, xlrec->firstright, xlrec->newitemoff);
break;
}
case XLOG_BTREE_VACUUM:
diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h
index d8c14e0493a..f272eea37a9 100644
--- a/src/include/access/nbtree.h
+++ b/src/include/access/nbtree.h
@@ -265,11 +265,11 @@ typedef struct xl_btree_insert
*
* Note: the four XLOG_BTREE_SPLIT xl_info codes all use this data record.
* The _L and _R variants indicate whether the inserted tuple went into the
- * left or right split page (and thus, whether newitemoff and the new item
- * are stored or not). The _ROOT variants indicate that we are splitting
- * the root page, and thus that a newroot record rather than an insert or
- * split record should follow. Note that a split record never carries a
- * metapage update --- we'll do that in the parent-level update.
+ * left or right split page (and thus, whether the new item is stored or not).
+ * The _ROOT variants indicate that we are splitting the root page, and thus
+ * that a newroot record rather than an insert or split record should follow.
+ * Note that a split record never carries a metapage update --- we'll do that
+ * in the parent-level update.
*
* Backup Blk 0: original page / new left page
*
@@ -291,7 +291,7 @@ typedef struct xl_btree_split
{
uint32 level; /* tree level of page being split */
OffsetNumber firstright; /* first item moved to right page */
- OffsetNumber newitemoff; /* new item's offset (if placed on left page) */
+ OffsetNumber newitemoff; /* new item's offset (useful for _L variants) */
} xl_btree_split;
#define SizeOfBtreeSplit (offsetof(xl_btree_split, newitemoff) + sizeof(OffsetNumber))