Re: TOAST issue on custom index access method

From: Carsten Kropf <ckropf2(at)fh-hof(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: TOAST issue on custom index access method
Date: 2010-06-24 14:53:57
Message-ID: A7288DD3-850A-4B09-AE60-453E5D0100ED@fh-hof.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Oh,
thanks. I didn't know about index tables not having access to associated toast values. The index access method is (at least in the textual part) similar to GIN, however, I needed to do some changes to it. Saving the whole document is actually only important for vacuum. I think, I will find some workaround to solve this issue.
However, it is a little bit strange, that I get toasted values (when inserting from another table) and untoasted values, if I insert items directly. Could anybody please explain this to me?

Best regards
Carsten Kropf
Am 24.06.2010 um 16:20 schrieb Tom Lane:

> Carsten Kropf <ckropf2(at)fh-hof(dot)de> writes:
>> I have a strange issue using a custom built index structure. My index access method support document type composed of words (as tsvector) and points (1-dimensional arrays of them). For internal reasons, I have to save the documents as a whole inside my structure (for proper reorganisations).
>> So, I form the tuples using index_form_tuple with the proper description. Everything works fine, as long as the documents are quite small. However, if the tsvector becomes too large, I run into a problem of not being able to store the documents, because (obviously) the tsvector is too large for one page.
>
> Well, of course. I think this is a fundamentally bad index design. You
> didn't say exactly what sort of searches you want this index type to
> accelerate, but perhaps you need a design closer to GIN, in which you'd
> make index entries for individual words not whole documents.
>
>> What I tried to solve this issue here, is to extract the words from the document (in my index) and calling 'Datum toast_compress_datum(Datum value)'in order to compress the tsvector into a proper toast table.
>
> Indexes don't have toast tables.
>
> regards, tom lane
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2010-06-24 15:08:34 Re: TOAST issue on custom index access method
Previous Message Robert Haas 2010-06-24 14:45:45 Re: [COMMITTERS] pgsql: Add TCP keepalive support to libpq.