On Wed, Nov 24, 2021 at 9:37 AM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> My mental model is that "tuple" (in the narrow context of heap vacuum)
> is the variable-size on-disk representation of a row in a page; "line
> pointer" is the fixed-size struct at the bottom of each page that
> contains location, size and flags of a tuple: struct ItemIdData. The
> TID is the address of a line pointer -- an ItemPointerData.
>
> What is an item? Is an item the same as a line pointer? That seems
> confusing. I think "item" means the tuple as a whole. In that light,
> using the term TID for some of the things that the patch renames to
> "item" seems more appropriate.
Hmm. I think in my model an item and an item pointer and a line
pointer are all the same thing, but a TID is different. When I talk
about a TID, I mean the location of an item pointer, not its contents.
So a TID is what tells me that I want block 5 and the 4th slot in the
item pointer array. The item pointer tells me that the associate tuple
is at a certain position in the page and has a certain length.
--
Robert Haas
EDB: http://www.enterprisedb.com