Re: GIN improvements part 1: additional information

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: GIN improvements part 1: additional information
Дата
Msg-id 52545362.4080806@vmware.com
обсуждение исходный текст
Ответ на Re: GIN improvements part 1: additional information  (Alexander Korotkov <aekorotkov@gmail.com>)
Ответы Re: GIN improvements part 1: additional information  (Peter Eisentraut <peter_e@gmx.net>)
Список pgsql-hackers
On 04.10.2013 14:13, Alexander Korotkov wrote:
> On Fri, Oct 4, 2013 at 12:28 PM, Heikki Linnakangas<hlinnakangas@vmware.com
>> wrote:
>
>> In the attached patch, I in fact already did that for data leaf pages, but
>> didn't change the format of non-leaf pages yet. If we want to support
>> pg_upgrade, we might want to refrain from changing the non-leaf format.
>
> In GinDataLeafPageGetPostingList* you use sizeof(ItemPointerData) without
> MAXALIGN. Is it an error or you especially use 2 extra bytes on leaf page?

I didn't even think of it. Now that I do think of it, I don't see a 
reason to use MAXALIGN there. PostingItems only require 2-byte 
alignment. It's a bit fragile and underdocumented though. It probably 
would be good to have a struct to represent that layout. Something like:

struct
{  ItemPointerData rightBound;  PostingItem postingItems[1]; /* variable length array */
} PostingItemPageContent;

And use that struct in the macros.

Then again, we do currently use MAXALIGN there, so if we want to avoid 
changing the on-disk format, we have to keep it...

- Heikki



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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Patch: FORCE_NULL option for copy COPY in CSV mode
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: old warning in docs