On 04.10.2013 14:13, Alexander Korotkov wrote:
On Fri, Oct 4, 2013 at 12:28 PM, Heikki Linnakangas<hlinnakan...@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


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to