@@ -222,19 +222,19 @@ typedef PageHeaderData *PageHeader;
222
222
* returns true iff no itemid has been allocated on the page
223
223
*/
224
224
static inline bool
225
- PageIsEmpty (Page page )
225
+ PageIsEmpty (const PageData * page )
226
226
{
227
- return ((PageHeader ) page )-> pd_lower <= SizeOfPageHeaderData ;
227
+ return ((const PageHeaderData * ) page )-> pd_lower <= SizeOfPageHeaderData ;
228
228
}
229
229
230
230
/*
231
231
* PageIsNew
232
232
* returns true iff page has not been initialized (by PageInit)
233
233
*/
234
234
static inline bool
235
- PageIsNew (Page page )
235
+ PageIsNew (const PageData * page )
236
236
{
237
- return ((PageHeader ) page )-> pd_upper == 0 ;
237
+ return ((const PageHeaderData * ) page )-> pd_upper == 0 ;
238
238
}
239
239
240
240
/*
@@ -275,19 +275,19 @@ PageGetContents(Page page)
275
275
* however, it can be called on a page that is not stored in a buffer.
276
276
*/
277
277
static inline Size
278
- PageGetPageSize (Page page )
278
+ PageGetPageSize (const PageData * page )
279
279
{
280
- return (Size ) (((PageHeader ) page )-> pd_pagesize_version & (uint16 ) 0xFF00 );
280
+ return (Size ) (((const PageHeaderData * ) page )-> pd_pagesize_version & (uint16 ) 0xFF00 );
281
281
}
282
282
283
283
/*
284
284
* PageGetPageLayoutVersion
285
285
* Returns the page layout version of a page.
286
286
*/
287
287
static inline uint8
288
- PageGetPageLayoutVersion (Page page )
288
+ PageGetPageLayoutVersion (const PageData * page )
289
289
{
290
- return (((PageHeader ) page )-> pd_pagesize_version & 0x00FF );
290
+ return (((const PageHeaderData * ) page )-> pd_pagesize_version & 0x00FF );
291
291
}
292
292
293
293
/*
@@ -315,9 +315,9 @@ PageSetPageSizeAndVersion(Page page, Size size, uint8 version)
315
315
* Returns size of special space on a page.
316
316
*/
317
317
static inline uint16
318
- PageGetSpecialSize (Page page )
318
+ PageGetSpecialSize (const PageData * page )
319
319
{
320
- return (PageGetPageSize (page ) - ((PageHeader ) page )-> pd_special );
320
+ return (PageGetPageSize (page ) - ((const PageHeaderData * ) page )-> pd_special );
321
321
}
322
322
323
323
/*
@@ -326,23 +326,22 @@ PageGetSpecialSize(Page page)
326
326
* This is intended to catch use of the pointer before page initialization.
327
327
*/
328
328
static inline void
329
- PageValidateSpecialPointer (Page page )
329
+ PageValidateSpecialPointer (const PageData * page )
330
330
{
331
331
Assert (page );
332
- Assert (((PageHeader ) page )-> pd_special <= BLCKSZ );
333
- Assert (((PageHeader ) page )-> pd_special >= SizeOfPageHeaderData );
332
+ Assert (((const PageHeaderData * ) page )-> pd_special <= BLCKSZ );
333
+ Assert (((const PageHeaderData * ) page )-> pd_special >= SizeOfPageHeaderData );
334
334
}
335
335
336
336
/*
337
337
* PageGetSpecialPointer
338
338
* Returns pointer to special space on a page.
339
339
*/
340
- static inline char *
341
- PageGetSpecialPointer (Page page )
342
- {
343
- PageValidateSpecialPointer (page );
344
- return (char * ) page + ((PageHeader ) page )-> pd_special ;
345
- }
340
+ #define PageGetSpecialPointer (page ) \
341
+ ( \
342
+ PageValidateSpecialPointer(page), \
343
+ ((page) + ((PageHeader) (page))->pd_special) \
344
+ )
346
345
347
346
/*
348
347
* PageGetItem
@@ -353,12 +352,12 @@ PageGetSpecialPointer(Page page)
353
352
* The semantics may change in the future.
354
353
*/
355
354
static inline Item
356
- PageGetItem (Page page , ItemId itemId )
355
+ PageGetItem (const PageData * page , const ItemIdData * itemId )
357
356
{
358
357
Assert (page );
359
358
Assert (ItemIdHasStorage (itemId ));
360
359
361
- return (Item ) (((char * ) page ) + ItemIdGetOffset (itemId ));
360
+ return (Item ) (((const char * ) page ) + ItemIdGetOffset (itemId ));
362
361
}
363
362
364
363
/*
@@ -371,9 +370,9 @@ PageGetItem(Page page, ItemId itemId)
371
370
* return zero to ensure sane behavior.
372
371
*/
373
372
static inline OffsetNumber
374
- PageGetMaxOffsetNumber (Page page )
373
+ PageGetMaxOffsetNumber (const PageData * page )
375
374
{
376
- PageHeader pageheader = (PageHeader ) page ;
375
+ const PageHeaderData * pageheader = (const PageHeaderData * ) page ;
377
376
378
377
if (pageheader -> pd_lower <= SizeOfPageHeaderData )
379
378
return 0 ;
@@ -385,7 +384,7 @@ PageGetMaxOffsetNumber(Page page)
385
384
* Additional functions for access to page headers.
386
385
*/
387
386
static inline XLogRecPtr
388
- PageGetLSN (const char * page )
387
+ PageGetLSN (const PageData * page )
389
388
{
390
389
return PageXLogRecPtrGet (((const PageHeaderData * ) page )-> pd_lsn );
391
390
}
@@ -396,9 +395,9 @@ PageSetLSN(Page page, XLogRecPtr lsn)
396
395
}
397
396
398
397
static inline bool
399
- PageHasFreeLinePointers (Page page )
398
+ PageHasFreeLinePointers (const PageData * page )
400
399
{
401
- return ((PageHeader ) page )-> pd_flags & PD_HAS_FREE_LINES ;
400
+ return ((const PageHeaderData * ) page )-> pd_flags & PD_HAS_FREE_LINES ;
402
401
}
403
402
static inline void
404
403
PageSetHasFreeLinePointers (Page page )
@@ -412,9 +411,9 @@ PageClearHasFreeLinePointers(Page page)
412
411
}
413
412
414
413
static inline bool
415
- PageIsFull (Page page )
414
+ PageIsFull (const PageData * page )
416
415
{
417
- return ((PageHeader ) page )-> pd_flags & PD_PAGE_FULL ;
416
+ return ((const PageHeaderData * ) page )-> pd_flags & PD_PAGE_FULL ;
418
417
}
419
418
static inline void
420
419
PageSetFull (Page page )
@@ -428,9 +427,9 @@ PageClearFull(Page page)
428
427
}
429
428
430
429
static inline bool
431
- PageIsAllVisible (Page page )
430
+ PageIsAllVisible (const PageData * page )
432
431
{
433
- return ((PageHeader ) page )-> pd_flags & PD_ALL_VISIBLE ;
432
+ return ((const PageHeaderData * ) page )-> pd_flags & PD_ALL_VISIBLE ;
434
433
}
435
434
static inline void
436
435
PageSetAllVisible (Page page )
@@ -490,19 +489,19 @@ StaticAssertDecl(BLCKSZ == ((BLCKSZ / sizeof(size_t)) * sizeof(size_t)),
490
489
"BLCKSZ has to be a multiple of sizeof(size_t)" );
491
490
492
491
extern void PageInit (Page page , Size pageSize , Size specialSize );
493
- extern bool PageIsVerifiedExtended (Page page , BlockNumber blkno , int flags );
492
+ extern bool PageIsVerifiedExtended (const PageData * page , BlockNumber blkno , int flags );
494
493
extern OffsetNumber PageAddItemExtended (Page page , Item item , Size size ,
495
494
OffsetNumber offsetNumber , int flags );
496
- extern Page PageGetTempPage (Page page );
497
- extern Page PageGetTempPageCopy (Page page );
498
- extern Page PageGetTempPageCopySpecial (Page page );
495
+ extern Page PageGetTempPage (const PageData * page );
496
+ extern Page PageGetTempPageCopy (const PageData * page );
497
+ extern Page PageGetTempPageCopySpecial (const PageData * page );
499
498
extern void PageRestoreTempPage (Page tempPage , Page oldPage );
500
499
extern void PageRepairFragmentation (Page page );
501
500
extern void PageTruncateLinePointerArray (Page page );
502
- extern Size PageGetFreeSpace (Page page );
503
- extern Size PageGetFreeSpaceForMultipleTuples (Page page , int ntups );
504
- extern Size PageGetExactFreeSpace (Page page );
505
- extern Size PageGetHeapFreeSpace (Page page );
501
+ extern Size PageGetFreeSpace (const PageData * page );
502
+ extern Size PageGetFreeSpaceForMultipleTuples (const PageData * page , int ntups );
503
+ extern Size PageGetExactFreeSpace (const PageData * page );
504
+ extern Size PageGetHeapFreeSpace (const PageData * page );
506
505
extern void PageIndexTupleDelete (Page page , OffsetNumber offnum );
507
506
extern void PageIndexMultiDelete (Page page , OffsetNumber * itemnos , int nitems );
508
507
extern void PageIndexTupleDeleteNoCompact (Page page , OffsetNumber offnum );
0 commit comments