Re: Something's been bugging me

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Something's been bugging me
Дата
Msg-id 6388.1191087661@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Something's been bugging me  (Gregory Stark <stark@enterprisedb.com>)
Ответы Re: Something's been bugging me  (Gregory Stark <stark@enterprisedb.com>)
Список pgsql-hackers
Gregory Stark <stark@enterprisedb.com> writes:
> "Tom Lane" <tgl@sss.pgh.pa.us> writes:
>> The idea that I recall mentioning was to expend another byte in TOAST
>> pointers to make them self-identifying, ie, instead of 0x80 or 0x01
>> signaling something that *must* be a 17-byte toast pointer, that bit
>> pattern signals "something else" and the content of the next byte
>> lets you know what.  So TOAST pointers would take 18 bytes instead of
>> 17, and there would be room for additions of other sorts of pointers.

> Here's a patch that does all of the above. 

I'd be inclined to make the second byte be the length and have
VARSIZE_1B_E depend on that --- any objection?

> 2) the test in tuptoaster.c could be

>         if (toast_isnull[i] || 
>             !VARATT_IS_EXTERNAL(new_value) ||
>             VARSIZE_EXTERNAL(old_value) != VARSIZE_EXTERNAL(new_value) ||
>             memcmp(VARDATA_SHORT(old_value),
>                    VARDATA_SHORT(new_value),
>                    VARSIZE_EXTERNAL(old_value)) != 0)

Yeah, I'd go with this just to avoid having hardwired knowledge of the
datum size here.
        regards, tom lane


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

Предыдущее
От: Gregory Stark
Дата:
Сообщение: Re: Something's been bugging me
Следующее
От: Gregory Stark
Дата:
Сообщение: Re: Something's been bugging me