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