diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2017-03-28 12:52:55 -0300 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2017-03-28 19:02:23 -0300 |
commit | ce96ce60ca2293f75f36c3661e4657a3c79ffd61 (patch) | |
tree | 45247e9dd84a19acd6a2d024ddcc95007e12a577 /src/backend/utils/adt/tid.c | |
parent | a99f77021f0c8c1c221af4e36b64ca43abd04389 (diff) |
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
Diffstat (limited to 'src/backend/utils/adt/tid.c')
-rw-r--r-- | src/backend/utils/adt/tid.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c index 49a5a157b94..8453b65e78a 100644 --- a/src/backend/utils/adt/tid.c +++ b/src/backend/utils/adt/tid.c @@ -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)); } |