On Wed, Apr 2, 2025 at 11:57 AM Andres Freund <and...@anarazel.de> wrote: > I'd assume it's extremely rare for there to be this many items on a page. I'd > guess that something like storing having BTScanPosData->items point to an > in-line 4-16 BTScanPosItem items_inline[N] and dynamically allocate a > full-length BTScanPosItem[MaxTIDsPerBTreePage] just in the cases it's needed.
There can still only be MaxIndexTuplesPerPage items on the page (407 if memory serves) -- deduplication didn't change that. It isn't at all rare for the scan to have to return about 1350 TIDs from a page, though. Any low cardinality index will tend to have almost that many TIDs to return on any page that only stores duplicates. And scan will necessarily have to return all of the TIDs from such a page, if it has to return any. -- Peter Geoghegan