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
|
| Список | 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 по дате отправления: