From: | Frédéric Yhuel <frederic(dot)yhuel(at)dalibo(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | pgstattuple: fix free space calculation |
Date: | 2024-08-22 08:10:53 |
Message-ID: | 3a18f843-76f6-4a84-8cca-49537fefa15d@dalibo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello,
I think that pgstattuple should use PageGetExactFreeSpace() instead of
PageGetHeapFreeSpace() or PageGetFreeSpace(). The latter two compute the
free space minus the space of a line pointer. They are used like this in
the rest of the code (heapam.c):
pagefree = PageGetHeapFreeSpace(page);
if (newtupsize > pagefree) { we need a another page for the tuple }
... so it makes sense to take the line pointer into account in this context.
But it in the pgstattuple context, I think we want the exact free space.
I have attached a patch.
Best regards,
Frédéric
Attachment | Content-Type | Size |
---|---|---|
0001-pgstattuple-use-PageGetExactFreeSpace.patch | text/x-patch | 2.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Alexandra Wang | 2024-08-22 08:36:31 | Re: Index AM API cleanup |
Previous Message | Peter Smith | 2024-08-22 08:02:52 | Re: Conflict detection and logging in logical replication |