From 8023b5827fbada6815ce269db4f3373ac77ec7c3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 22 Sep 2016 14:30:33 -0400 Subject: [PATCH] Remove nearly-unused SizeOfIptrData macro. Past refactorings have removed all but one reference to SizeOfIptrData (and that one place was in a pretty noncritical spot). Since nobody's complained, it seems probable that there are no supported compilers that don't think sizeof(ItemPointerData) is 6. If there are, we're wasting MAXALIGN per heap tuple anyway, so it's rather silly to worry about whether we can shave space in places like WAL records. Pavan Deolasee Discussion: --- src/backend/executor/nodeTidscan.c | 2 +- src/include/storage/itemptr.h | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/backend/executor/nodeTidscan.c b/src/backend/executor/nodeTidscan.c index 2604103352..d54fe3665f 100644 --- a/src/backend/executor/nodeTidscan.c +++ b/src/backend/executor/nodeTidscan.c @@ -139,7 +139,7 @@ TidListCreate(TidScanState *tidstate) continue; itemarray = DatumGetArrayTypeP(arraydatum); deconstruct_array(itemarray, - TIDOID, SizeOfIptrData, false, 's', + TIDOID, sizeof(ItemPointerData), false, 's', &ipdatums, &ipnulls, &ndatums); if (numTids + ndatums > numAllocTids) { diff --git a/src/include/storage/itemptr.h b/src/include/storage/itemptr.h index 7ec7ed30c9..0deab7a859 100644 --- a/src/include/storage/itemptr.h +++ b/src/include/storage/itemptr.h @@ -30,9 +30,8 @@ * 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. + * possible. If your compiler can't be made to play along, you'll waste + * lots of space. */ typedef struct ItemPointerData { @@ -46,9 +45,6 @@ pg_attribute_aligned(2) #endif ItemPointerData; -#define SizeOfIptrData \ - (offsetof(ItemPointerData, ip_posid) + sizeof(OffsetNumber)) - typedef ItemPointerData *ItemPointer; /* ----------------