Обсуждение: A GIN index internals question

Поиск
Список
Период
Сортировка

A GIN index internals question

От
Amit Langote
Дата:
Hi,

Can a posting item / ItemPointer belonging to posting list/tree of
some entry "stored" in a GIN index be "lossy"? If yes, under what
circumstances would such a lossy ItemPointer be included for the
entry?

I got an impression that there may be some lossy ItemPointers stored
in a GIN index while reading keyGetItem() code in
src/backend/access/gin/ginget.c


--
Amit



Re: A GIN index internals question

От
Andreas Karlsson
Дата:
On 12/27/2013 08:22 AM, Amit Langote wrote:
> Hi,
>
> Can a posting item / ItemPointer belonging to posting list/tree of
> some entry "stored" in a GIN index be "lossy"? If yes, under what
> circumstances would such a lossy ItemPointer be included for the
> entry?
>
> I got an impression that there may be some lossy ItemPointers stored
> in a GIN index while reading keyGetItem() code in
> src/backend/access/gin/ginget.c

No, they cannot be lossy. The reason keyGetItem() need to handle lossy 
pointers is because partial matching collects all TIDs from the posting 
trees matched by a key into a tidbitmap. This tidbitmap becomes lossy if 
the matching TIDs do not fit into the workmem.

-- 
Andreas Karlsson