IndexTuple Structure

From: "Gokulakannan Somasundaram" <gokul007(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: IndexTuple Structure
Date: 2007-10-09 10:29:21
Message-ID: 9362e74e0710090329x6e8e706ex3f0eedd94088e841@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,
When i saw the IndexTuple structure, i saw that 13 bits are allocated
to store the size of the Values List of the IndexTuple Structure. Also the
IID(ItemId Identifier) in the Page header stores the complete size of the
IndexTuple. Can't we derive the size of the IndexTuple from the IID->len?
I think we will be able to save 1 byte per IndexTuple, if we can
implement this from t_info.

But will this really be a benefit, if we reduce this, considering the effect
of MAX_ALIGN?
I did a small analysis, Currently IndexTuple has a ItemId (6 Bytes) +
t_info(2 Bytes) . So usually it is 8 Bytes. In this case it doesn't matter
whether the t_info occupies 1 byte/2 bytes.
But when Null Bitmap is included and if it is less than one byte(which it is
in most of the cases), then IndexInfoFindDataOffset will return 12 bytes now
(9 bytes + 3 bytes for maxalign).
If we make this improvement, it will continue to be 8 bytes(saving of 4
bytes per IndexTuple)

Please put forth your comments..

Thanks,
Gokul.

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Florian G. Pflug 2007-10-09 10:30:32 Re: Including Snapshot Info with Indexes
Previous Message Trevor Talbot 2007-10-09 10:16:58 Re: Timezone database changes