mirror of
https://github.com/postgres/postgres.git
synced 2025-12-19 17:02:53 +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:
@@ -60,23 +60,41 @@ typedef ItemPointerData *ItemPointer;
|
||||
((bool) (PointerIsValid(pointer) && ((pointer)->ip_posid != 0)))
|
||||
|
||||
/*
|
||||
* ItemPointerGetBlockNumber
|
||||
* ItemPointerGetBlockNumberNoCheck
|
||||
* Returns the block number of a disk item pointer.
|
||||
*/
|
||||
#define ItemPointerGetBlockNumber(pointer) \
|
||||
#define ItemPointerGetBlockNumberNoCheck(pointer) \
|
||||
( \
|
||||
AssertMacro(ItemPointerIsValid(pointer)), \
|
||||
BlockIdGetBlockNumber(&(pointer)->ip_blkid) \
|
||||
)
|
||||
|
||||
/*
|
||||
* ItemPointerGetOffsetNumber
|
||||
* ItemPointerGetBlockNumber
|
||||
* As above, but verifies that the item pointer looks valid.
|
||||
*/
|
||||
#define ItemPointerGetBlockNumber(pointer) \
|
||||
( \
|
||||
AssertMacro(ItemPointerIsValid(pointer)), \
|
||||
ItemPointerGetBlockNumberNoCheck(pointer) \
|
||||
)
|
||||
|
||||
/*
|
||||
* ItemPointerGetOffsetNumberNoCheck
|
||||
* Returns the offset number of a disk item pointer.
|
||||
*/
|
||||
#define ItemPointerGetOffsetNumberNoCheck(pointer) \
|
||||
( \
|
||||
(pointer)->ip_posid \
|
||||
)
|
||||
|
||||
/*
|
||||
* ItemPointerGetOffsetNumber
|
||||
* As above, but verifies that the item pointer looks valid.
|
||||
*/
|
||||
#define ItemPointerGetOffsetNumber(pointer) \
|
||||
( \
|
||||
AssertMacro(ItemPointerIsValid(pointer)), \
|
||||
(pointer)->ip_posid \
|
||||
ItemPointerGetOffsetNumberNoCheck(pointer) \
|
||||
)
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user