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
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 |