On Wed, Jul 16, 2025 at 4:46 PM Andres Freund <and...@anarazel.de> wrote: > Maybe I'm missing something, but the current interface doesn't seem to work > for AMs that don't have a 1:1 mapping between the block number portion of the > tid and the actual block number?
I'm not completely sure what you mean here. Even within nbtree, posting list tuples work by setting the INDEX_ALT_TID_MASK index tuple header bit. That makes nbtree interpret IndexTupleData.t_tid as metadata (in this case describing a posting list). Obviously, that isn't "a standard IndexTuple", but that won't break either patch/approach. The index AM is obligated to pass back heap TIDs, without any external code needing to understand these sorts of implementation details. The on-disk representation of TIDs remains an implementation detail known only to index AMs. -- Peter Geoghegan