diff --git a/src/backend/executor/nodeTidscan.c b/src/backend/executor/nodeTidscan.c index 2604103352949ff9c96860a0f3872255264091d6..d54fe3665f7640e06864d4cc37255cc135216474 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 7ec7ed30c97c03726e9ba4fb4715526699cdaa35..0deab7a859f406c3542e6213d45878618f06cde1 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; /* ----------------