I'm considering getting rid of the BTItem/BTItemData and HashItem/HashItemData struct definitions and just referencing IndexTuple(Data) directly in the btree and hash AMs. It appears that at one time in the forgotten past, there was some access-method-specific data in index entries in addition to the common IndexTuple struct, but that's been gone for a long time and I can't see a reason why either of these AMs would resurrect it. So this just seems like extra notational cruft to me, as well as an extra layer of palloc overhead (see eg _bt_formitem()). GIST already got rid of this concept, or never had it.
Does anyone see a reason to keep this layer of struct definitions?
regards, tom lane
---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster