Re: What is an item pointer, anyway?

Поиск
Список
Период
Сортировка
От Ashwin Agrawal
Тема Re: What is an item pointer, anyway?
Дата
Msg-id CALfoeivDtaQPn8tfb48q1LJ1m1g6AKsgZ5Ws7OQZFBDHOUjnDQ@mail.gmail.com
обсуждение исходный текст
Ответ на What is an item pointer, anyway?  (Peter Geoghegan <pg@bowt.ie>)
Ответы Re: What is an item pointer, anyway?  (Peter Geoghegan <pg@bowt.ie>)
Re: What is an item pointer, anyway?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers

On Fri, Apr 26, 2019 at 2:19 PM Peter Geoghegan <pg@bowt.ie> wrote:
itemid.h introduces the struct ItemIdData as follows:

/*
 * An item pointer (also called line pointer) on a buffer page

Meanwhile, itemptr.h introduces the struct ItemPointerData as follows:

/*
 * ItemPointer:
 *
 * This is a pointer to an item within a disk page of a known file
 * (for example, a cross-link from an index to its parent table).

It doesn't seem reasonable to assume that you should know the
difference based on context. The two concepts are closely related. An
ItemPointerData points to a block, as well as the, uh, item pointer
within that block.

This ambiguity is avoidable, and should be avoided.

Agree.
 
ISTM that the
least confusing way of removing the ambiguity would be to no longer
refer to ItemIds as item pointers, without changing anything else.

How about we rename ItemPointerData to TupleIdentifier or ItemIdentifier instead and leave ItemPointer or Item confined to AM term, where item can be tuple, datum or anything else ?

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: What is an item pointer, anyway?
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Optimizer items in the release notes