From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: GIN improvements part 1: additional information |
Date: | 2013-10-08 18:48:02 |
Message-ID: | 52545362.4080806@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 04.10.2013 14:13, Alexander Korotkov wrote:
> On Fri, Oct 4, 2013 at 12:28 PM, Heikki Linnakangas<hlinnakangas(at)vmware(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2013-10-08 18:50:38 | Re: Urgent Help Required |
Previous Message | Andrew Dunstan | 2013-10-08 18:38:51 | Re: Patch: FORCE_NULL option for copy COPY in CSV mode |