0001-Use-PageGetHeapFreeSpace-in-heap_xlog_visible.patch
text/x-patch
Filename: 0001-Use-PageGetHeapFreeSpace-in-heap_xlog_visible.patch
Type: text/x-patch
Part: 0
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 0001
Subject: Use PageGetHeapFreeSpace in heap_xlog_visible.
| File | + | − |
|---|---|---|
| src/backend/access/heap/heapam.c | 1 | 1 |
From 2d536c4851fccf6eb4d8cf12d158641432fa3800 Mon Sep 17 00:00:00 2001
From: Alexey Makhmutov <a.makhmutov@postgrespro.ru>
Date: Thu, 23 Apr 2026 17:54:20 +0300
Subject: [PATCH] Use PageGetHeapFreeSpace in heap_xlog_visible.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Free space in regular heap pages need to be calculated using
PageGetHeapFreeSpace rather than PageGetFreeSpace. This is required to
take into account the MaxHeapTuplesPerPage limit, otherwise page may be
marked as having free space while it’s impossible to add any new row to
it.
---
src/backend/access/heap/heapam.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index a2c2745d148..19739390bd9 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -9232,7 +9232,7 @@ heap_xlog_visible(XLogReaderState *record)
if (BufferIsValid(buffer))
{
- Size space = PageGetFreeSpace(BufferGetPage(buffer));
+ Size space = PageGetHeapFreeSpace(BufferGetPage(buffer));
UnlockReleaseBuffer(buffer);
--
2.54.0