@@ -53,7 +53,6 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
53
53
BrinTuple * oldtup ;
54
54
Size oldsz ;
55
55
Buffer newbuf ;
56
- BrinSpecialSpace * special ;
57
56
bool extended = false;
58
57
59
58
newsz = MAXALIGN (newsz );
@@ -113,8 +112,6 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
113
112
return false;
114
113
}
115
114
116
- special = (BrinSpecialSpace * ) PageGetSpecialPointer (oldpage );
117
-
118
115
/*
119
116
* Great, the old tuple is intact. We can proceed with the update.
120
117
*
@@ -124,7 +121,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
124
121
* caller told us there isn't, if a concurrent update moved another tuple
125
122
* elsewhere or replaced a tuple with a smaller one.
126
123
*/
127
- if (((special -> flags & BRIN_EVACUATE_PAGE ) == 0 ) &&
124
+ if (((BrinPageFlags ( oldpage ) & BRIN_EVACUATE_PAGE ) == 0 ) &&
128
125
brin_can_do_samepage_update (oldbuf , origsz , newsz ))
129
126
{
130
127
if (BufferIsValid (newbuf ))
@@ -374,12 +371,9 @@ brin_doinsert(Relation idxrel, BlockNumber pagesPerRange,
374
371
void
375
372
brin_page_init (Page page , uint16 type )
376
373
{
377
- BrinSpecialSpace * special ;
378
-
379
374
PageInit (page , BLCKSZ , sizeof (BrinSpecialSpace ));
380
375
381
- special = (BrinSpecialSpace * ) PageGetSpecialPointer (page );
382
- special -> type = type ;
376
+ BrinPageType (page ) = type ;
383
377
}
384
378
385
379
/*
@@ -420,16 +414,13 @@ brin_start_evacuating_page(Relation idxRel, Buffer buf)
420
414
{
421
415
OffsetNumber off ;
422
416
OffsetNumber maxoff ;
423
- BrinSpecialSpace * special ;
424
417
Page page ;
425
418
426
419
page = BufferGetPage (buf );
427
420
428
421
if (PageIsNew (page ))
429
422
return false;
430
423
431
- special = (BrinSpecialSpace * ) PageGetSpecialPointer (page );
432
-
433
424
maxoff = PageGetMaxOffsetNumber (page );
434
425
for (off = FirstOffsetNumber ; off <= maxoff ; off ++ )
435
426
{
@@ -439,7 +430,7 @@ brin_start_evacuating_page(Relation idxRel, Buffer buf)
439
430
if (ItemIdIsUsed (lp ))
440
431
{
441
432
/* prevent other backends from adding more stuff to this page */
442
- special -> flags |= BRIN_EVACUATE_PAGE ;
433
+ BrinPageFlags ( page ) |= BRIN_EVACUATE_PAGE ;
443
434
MarkBufferDirtyHint (buf , true);
444
435
445
436
return true;
@@ -463,8 +454,7 @@ brin_evacuate_page(Relation idxRel, BlockNumber pagesPerRange,
463
454
464
455
page = BufferGetPage (buf );
465
456
466
- Assert (((BrinSpecialSpace * )
467
- PageGetSpecialPointer (page ))-> flags & BRIN_EVACUATE_PAGE );
457
+ Assert (BrinPageFlags (page ) & BRIN_EVACUATE_PAGE );
468
458
469
459
maxoff = PageGetMaxOffsetNumber (page );
470
460
for (off = FirstOffsetNumber ; off <= maxoff ; off ++ )
@@ -677,11 +667,8 @@ brin_getinsertbuffer(Relation irel, Buffer oldbuf, Size itemsz,
677
667
static Size
678
668
br_page_get_freespace (Page page )
679
669
{
680
- BrinSpecialSpace * special ;
681
-
682
- special = (BrinSpecialSpace * ) PageGetSpecialPointer (page );
683
670
if (!BRIN_IS_REGULAR_PAGE (page ) ||
684
- (special -> flags & BRIN_EVACUATE_PAGE ) != 0 )
671
+ (BrinPageFlags ( page ) & BRIN_EVACUATE_PAGE ) != 0 )
685
672
return 0 ;
686
673
else
687
674
return PageGetFreeSpace (page );
0 commit comments