mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Remove direct uses of ItemPointer.{ip_blkid,ip_posid}
There are no functional changes here; this simply encapsulates knowledge of the ItemPointerData struct so that a future patch can change things without more breakage. All direct users of ip_blkid and ip_posid are changed to use existing macros ItemPointerGetBlockNumber and ItemPointerGetOffsetNumber respectively. For callers where that's inappropriate (because they Assert that the itempointer is is valid-looking), add ItemPointerGetBlockNumberNoCheck and ItemPointerGetOffsetNumberNoCheck, which lack the assertion but are otherwise identical. Author: Pavan Deolasee Discussion: https://postgr.es/m/CABOikdNnFon4cJiL=h1mZH3bgUeU+sWHuU4Yr8AB=j3A2p1GiA@mail.gmail.com
This commit is contained in:
@ -109,8 +109,8 @@ tidout(PG_FUNCTION_ARGS)
|
||||
OffsetNumber offsetNumber;
|
||||
char buf[32];
|
||||
|
||||
blockNumber = BlockIdGetBlockNumber(&(itemPtr->ip_blkid));
|
||||
offsetNumber = itemPtr->ip_posid;
|
||||
blockNumber = ItemPointerGetBlockNumberNoCheck(itemPtr);
|
||||
offsetNumber = ItemPointerGetOffsetNumberNoCheck(itemPtr);
|
||||
|
||||
/* Perhaps someday we should output this as a record. */
|
||||
snprintf(buf, sizeof(buf), "(%u,%u)", blockNumber, offsetNumber);
|
||||
@ -146,18 +146,13 @@ Datum
|
||||
tidsend(PG_FUNCTION_ARGS)
|
||||
{
|
||||
ItemPointer itemPtr = PG_GETARG_ITEMPOINTER(0);
|
||||
BlockId blockId;
|
||||
BlockNumber blockNumber;
|
||||
OffsetNumber offsetNumber;
|
||||
StringInfoData buf;
|
||||
|
||||
blockId = &(itemPtr->ip_blkid);
|
||||
blockNumber = BlockIdGetBlockNumber(blockId);
|
||||
offsetNumber = itemPtr->ip_posid;
|
||||
|
||||
pq_begintypsend(&buf);
|
||||
pq_sendint(&buf, blockNumber, sizeof(blockNumber));
|
||||
pq_sendint(&buf, offsetNumber, sizeof(offsetNumber));
|
||||
pq_sendint(&buf, ItemPointerGetBlockNumberNoCheck(itemPtr),
|
||||
sizeof(BlockNumber));
|
||||
pq_sendint(&buf, ItemPointerGetOffsetNumberNoCheck(itemPtr),
|
||||
sizeof(OffsetNumber));
|
||||
PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user