On 10/9/07, Gokulakannan Somasundaram <[EMAIL PROTECTED]> wrote:
> 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)
No the calculation went wrong over here. It occupies 12 bytes, if the null
bitmap exists, since the null bitmap is always 4 bytes.
Please put forth your comments..