Re: Use of SizeOfIptrData - is that obsolete?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Use of SizeOfIptrData - is that obsolete?
Date: 2016-09-20 15:04:49
Message-ID: 20550.1474383889@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com> writes:
> I happened to notice this comment in src/include/storage/itemptr.h

> * Note: because there is an item pointer in each tuple header and index
> * tuple header on disk, it's very important not to waste space with
> * structure padding bytes. The struct is designed to be six bytes long
> * (it contains three int16 fields) but a few compilers will pad it to
> * eight bytes unless coerced. We apply appropriate persuasion where
> * possible, and to cope with unpersuadable compilers, we try to use
> * "SizeOfIptrData" rather than "sizeof(ItemPointerData)" when computing
> * on-disk sizes.
> */

> Is that now obsolete?

Realistically, because struct HeapTupleHeaderData contains a field of
type ItemPointerData, it's probably silly to imagine that we can save
anything if the compiler can't be persuaded to believe that
sizeof(ItemPointerData) is 6. It may well be that the structure pragmas
work on everything that wouldn't natively believe that anyway.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2016-09-20 15:18:57 Re: more parallel query documentation
Previous Message Robert Haas 2016-09-20 15:02:53 Re: Parallel sec scan in plpgsql