v1-0003-Remove-block-field-from-gistxlogPageReuse-walreco.patch
application/octet-stream
Filename: v1-0003-Remove-block-field-from-gistxlogPageReuse-walreco.patch
Type: application/octet-stream
Part: 1
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v1-0003
Subject: Remove block field from gistxlogPageReuse walrecord.
| File | + | − |
|---|---|---|
| src/backend/access/gist/gistutil.c | 1 | 1 |
| src/backend/access/gist/gistxlog.c | 1 | 3 |
| src/backend/access/rmgrdesc/gistdesc.c | 2 | 2 |
| src/include/access/gist_private.h | 1 | 1 |
| src/include/access/gistxlog.h | 0 | 1 |
From e49ef681d5e67cb0aa2c3fb22fe94311c7684e08 Mon Sep 17 00:00:00 2001
From: reshke <reshke@double.cloud>
Date: Mon, 6 Oct 2025 17:07:13 +0000
Subject: [PATCH v1 3/4] Remove block field from gistxlogPageReuse walrecord.
remove unused field, reduce wal footprint
---
src/backend/access/gist/gistutil.c | 2 +-
src/backend/access/gist/gistxlog.c | 4 +---
src/backend/access/rmgrdesc/gistdesc.c | 4 ++--
src/include/access/gist_private.h | 2 +-
src/include/access/gistxlog.h | 1 -
5 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c
index cdc4ab3151b..3c057879519 100644
--- a/src/backend/access/gist/gistutil.c
+++ b/src/backend/access/gist/gistutil.c
@@ -864,7 +864,7 @@ gistNewBuffer(Relation r, Relation heaprel)
* page's deleteXid.
*/
if (XLogStandbyInfoActive() && RelationNeedsWAL(r))
- gistXLogPageReuse(r, heaprel, blkno, GistPageGetDeleteXid(page));
+ gistXLogPageReuse(r, heaprel, GistPageGetDeleteXid(page));
return buffer;
}
diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c
index afbe4dbb274..51db4a0744e 100644
--- a/src/backend/access/gist/gistxlog.c
+++ b/src/backend/access/gist/gistxlog.c
@@ -588,8 +588,7 @@ gistXLogAssignLSN(void)
* Write XLOG record about reuse of a deleted page.
*/
void
-gistXLogPageReuse(Relation rel, Relation heaprel,
- BlockNumber blkno, FullTransactionId deleteXid)
+gistXLogPageReuse(Relation rel, Relation heaprel, FullTransactionId deleteXid)
{
gistxlogPageReuse xlrec_reuse;
@@ -602,7 +601,6 @@ gistXLogPageReuse(Relation rel, Relation heaprel,
/* XLOG stuff */
xlrec_reuse.isCatalogRel = RelationIsAccessibleInLogicalDecoding(heaprel);
xlrec_reuse.locator = rel->rd_locator;
- xlrec_reuse.block = blkno;
xlrec_reuse.snapshotConflictHorizon = deleteXid;
XLogBeginInsert();
diff --git a/src/backend/access/rmgrdesc/gistdesc.c b/src/backend/access/rmgrdesc/gistdesc.c
index 3e9eba01eb9..24332bb8b95 100644
--- a/src/backend/access/rmgrdesc/gistdesc.c
+++ b/src/backend/access/rmgrdesc/gistdesc.c
@@ -47,9 +47,9 @@ out_gistxlogPageUpdate(StringInfo buf, XLogReaderState *record, gistxlogPageUpda
static void
out_gistxlogPageReuse(StringInfo buf, gistxlogPageReuse *xlrec)
{
- appendStringInfo(buf, "rel %u/%u/%u; blk %u; snapshotConflictHorizon %u:%u, isCatalogRel %c",
+ appendStringInfo(buf, "rel %u/%u/%u; snapshotConflictHorizon %u:%u, isCatalogRel %c",
xlrec->locator.spcOid, xlrec->locator.dbOid,
- xlrec->locator.relNumber, xlrec->block,
+ xlrec->locator.relNumber,
EpochFromFullTransactionId(xlrec->snapshotConflictHorizon),
XidFromFullTransactionId(xlrec->snapshotConflictHorizon),
xlrec->isCatalogRel ? 'T' : 'F');
diff --git a/src/include/access/gist_private.h b/src/include/access/gist_private.h
index 39404ec7cdb..0a38d1ea4dc 100644
--- a/src/include/access/gist_private.h
+++ b/src/include/access/gist_private.h
@@ -440,7 +440,7 @@ extern XLogRecPtr gistXLogPageDelete(Buffer buffer,
FullTransactionId xid, Buffer parentBuffer,
OffsetNumber downlinkOffset);
-extern void gistXLogPageReuse(Relation rel, Relation heaprel, BlockNumber blkno,
+extern void gistXLogPageReuse(Relation rel, Relation heaprel,
FullTransactionId deleteXid);
extern XLogRecPtr gistXLogUpdate(Buffer buffer,
diff --git a/src/include/access/gistxlog.h b/src/include/access/gistxlog.h
index d551c0a19d4..717ac790b7c 100644
--- a/src/include/access/gistxlog.h
+++ b/src/include/access/gistxlog.h
@@ -99,7 +99,6 @@ typedef struct gistxlogPageDelete
typedef struct gistxlogPageReuse
{
RelFileLocator locator;
- BlockNumber block;
FullTransactionId snapshotConflictHorizon;
bool isCatalogRel; /* to handle recovery conflict during logical
* decoding on standby */
--
2.43.0