A GIN index internals question

Started by Amit Langoteabout 12 years ago2 messages
#1Amit Langote
amitlangote09@gmail.com

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#2Andreas Karlsson
andreas@proxel.se
In reply to: Amit Langote (#1)
Re: A GIN index internals question

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers