Tom Lane wrote:
> Gregory Stark <stark(at)enterprisedb(dot)com> writes:
>> Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
>>> ... 3b sounds good until you
>>> reflect that a genuinely variable chunk size would preclude random
>>> access to sub-ranges of a toast value.
>
>> Hm, Heikki had me convinced it wouldn't but now that I try to explain it I
>> can't get it to work. I think the idea is you start a scan at the desired
>> offset and scan until you reach a chunk which overruns the end of the desired
>> piece. However you really need to start scanning at the last chunk *prior* to
>> the desired offset.
>
> Yeah, that was my conclusion too.
Hmm, you're right. I think it can be made to work by storing the *end*
offset of each chunk. To find the chunk containing offset X, search for
the first chunk with end_offset > X.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com