heapam: Only set tuple's block once per page in pagemode

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: 2904324a88f672b2ecc22735279c16d6e1ee178c
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2025-04-01T10:24:27Z
Releases: 18.0
heapam: Only set tuple's block once per page in pagemode

Due to splitting the block id into two 16 bit integers, BlockIdSet()
is more expensive than one might think.  Doing it once per returned
tuple shows up as a small but reliably reproducible cost.  It's simple
enough to set the block number just once per block in pagemode, so do
so.

Author: Andres Freund <andres@anarazel.de>
Discussion: https://www.postgresql.org/message-id/lxzj26ga6ippdeunz6kuncectr5gfuugmm2ry22qu6hcx6oid6@lzx3sjsqhmt6

Files

PathChange+/−
src/backend/access/heap/heapam.c modified +4 −1

Discussion