aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/nbtree/nbtsearch.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-04-01 13:24:50 +0900
committerMichael Paquier <michael@paquier.xyz>2022-04-01 13:24:50 +0900
commitd16773cdc86210493a2874cb0cf93f3883fcda73 (patch)
tree24306ded63bd036dc2eb37be6f817048c986eccd /src/backend/access/nbtree/nbtsearch.c
parent73db8f4d17ed4efb7709f1cafd5b1dd0285b0842 (diff)
downloadpostgresql-d16773cdc86210493a2874cb0cf93f3883fcda73.tar.gz
postgresql-d16773cdc86210493a2874cb0cf93f3883fcda73.zip
Add macros in hash and btree AMs to get the special area of their pages
This makes the code more consistent with SpGiST, GiST and GIN, that already use this style, and the idea is to make easier the introduction of more sanity checks for each of these AM-specific macros. BRIN uses a different set of macros to get a page's type and flags, so it has no need for something similar. Author: Matthias van de Meent Discussion: https://postgr.es/m/CAEze2WjE3+tGO9Fs9+iZMU+z6mMZKo54W1Zt98WKqbEUHbHOBg@mail.gmail.com
Diffstat (limited to 'src/backend/access/nbtree/nbtsearch.c')
-rw-r--r--src/backend/access/nbtree/nbtsearch.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c
index 9d82d4904d8..c74543bfde2 100644
--- a/src/backend/access/nbtree/nbtsearch.c
+++ b/src/backend/access/nbtree/nbtsearch.c
@@ -134,7 +134,7 @@ _bt_search(Relation rel, BTScanInsert key, Buffer *bufP, int access,
/* if this is a leaf page, we're done */
page = BufferGetPage(*bufP);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
if (P_ISLEAF(opaque))
break;
@@ -268,7 +268,7 @@ _bt_moveright(Relation rel,
{
page = BufferGetPage(buf);
TestForOldSnapshot(snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
if (P_RIGHTMOST(opaque))
break;
@@ -347,7 +347,7 @@ _bt_binsrch(Relation rel,
cmpval;
page = BufferGetPage(buf);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
/* Requesting nextkey semantics while using scantid seems nonsensical */
Assert(!key->nextkey || key->scantid == NULL);
@@ -451,7 +451,7 @@ _bt_binsrch_insert(Relation rel, BTInsertState insertstate)
cmpval;
page = BufferGetPage(insertstate->buf);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
Assert(P_ISLEAF(opaque));
Assert(!key->nextkey);
@@ -659,7 +659,7 @@ _bt_compare(Relation rel,
OffsetNumber offnum)
{
TupleDesc itupdesc = RelationGetDescr(rel);
- BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ BTPageOpaque opaque = BTPageGetOpaque(page);
IndexTuple itup;
ItemPointer heapTid;
ScanKey scankey;
@@ -1536,7 +1536,7 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum)
Assert(BufferIsValid(so->currPos.buf));
page = BufferGetPage(so->currPos.buf);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
/* allow next page be processed by parallel worker */
if (scan->parallel_scan)
@@ -2007,7 +2007,7 @@ _bt_readnextpage(IndexScanDesc scan, BlockNumber blkno, ScanDirection dir)
so->currPos.buf = _bt_getbuf(rel, blkno, BT_READ);
page = BufferGetPage(so->currPos.buf);
TestForOldSnapshot(scan->xs_snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
/* check for deleted page */
if (!P_IGNORE(opaque))
{
@@ -2110,7 +2110,7 @@ _bt_readnextpage(IndexScanDesc scan, BlockNumber blkno, ScanDirection dir)
*/
page = BufferGetPage(so->currPos.buf);
TestForOldSnapshot(scan->xs_snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
if (!P_IGNORE(opaque))
{
PredicateLockPage(rel, BufferGetBlockNumber(so->currPos.buf), scan->xs_snapshot);
@@ -2191,7 +2191,7 @@ _bt_walk_left(Relation rel, Buffer buf, Snapshot snapshot)
BTPageOpaque opaque;
page = BufferGetPage(buf);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
for (;;)
{
@@ -2216,7 +2216,7 @@ _bt_walk_left(Relation rel, Buffer buf, Snapshot snapshot)
buf = _bt_getbuf(rel, blkno, BT_READ);
page = BufferGetPage(buf);
TestForOldSnapshot(snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
/*
* If this isn't the page we want, walk right till we find what we
@@ -2243,14 +2243,14 @@ _bt_walk_left(Relation rel, Buffer buf, Snapshot snapshot)
buf = _bt_relandgetbuf(rel, buf, blkno, BT_READ);
page = BufferGetPage(buf);
TestForOldSnapshot(snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
}
/* Return to the original page to see what's up */
buf = _bt_relandgetbuf(rel, buf, obknum, BT_READ);
page = BufferGetPage(buf);
TestForOldSnapshot(snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
if (P_ISDELETED(opaque))
{
/*
@@ -2268,7 +2268,7 @@ _bt_walk_left(Relation rel, Buffer buf, Snapshot snapshot)
buf = _bt_relandgetbuf(rel, buf, blkno, BT_READ);
page = BufferGetPage(buf);
TestForOldSnapshot(snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
if (!P_ISDELETED(opaque))
break;
}
@@ -2329,7 +2329,7 @@ _bt_get_endpoint(Relation rel, uint32 level, bool rightmost,
page = BufferGetPage(buf);
TestForOldSnapshot(snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
for (;;)
{
@@ -2349,7 +2349,7 @@ _bt_get_endpoint(Relation rel, uint32 level, bool rightmost,
buf = _bt_relandgetbuf(rel, buf, blkno, BT_READ);
page = BufferGetPage(buf);
TestForOldSnapshot(snapshot, rel, page);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
}
/* Done? */
@@ -2372,7 +2372,7 @@ _bt_get_endpoint(Relation rel, uint32 level, bool rightmost,
buf = _bt_relandgetbuf(rel, buf, blkno, BT_READ);
page = BufferGetPage(buf);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
}
return buf;
@@ -2418,7 +2418,7 @@ _bt_endpoint(IndexScanDesc scan, ScanDirection dir)
PredicateLockPage(rel, BufferGetBlockNumber(buf), scan->xs_snapshot);
page = BufferGetPage(buf);
- opaque = (BTPageOpaque) PageGetSpecialPointer(page);
+ opaque = BTPageGetOpaque(page);
Assert(P_ISLEAF(opaque));
if (ScanDirectionIsForward(dir))