@@ -222,19 +222,19 @@ typedef PageHeaderData *PageHeader;
222222 * returns true iff no itemid has been allocated on the page
223223 */
224224static inline bool
225- PageIsEmpty (Page page )
225+ PageIsEmpty (const PageData * page )
226226{
227- return ((PageHeader ) page )-> pd_lower <= SizeOfPageHeaderData ;
227+ return ((const PageHeaderData * ) page )-> pd_lower <= SizeOfPageHeaderData ;
228228}
229229
230230/*
231231 * PageIsNew
232232 * returns true iff page has not been initialized (by PageInit)
233233 */
234234static inline bool
235- PageIsNew (Page page )
235+ PageIsNew (const PageData * page )
236236{
237- return ((PageHeader ) page )-> pd_upper == 0 ;
237+ return ((const PageHeaderData * ) page )-> pd_upper == 0 ;
238238}
239239
240240/*
@@ -275,19 +275,19 @@ PageGetContents(Page page)
275275 * however, it can be called on a page that is not stored in a buffer.
276276 */
277277static inline Size
278- PageGetPageSize (Page page )
278+ PageGetPageSize (const PageData * page )
279279{
280- return (Size ) (((PageHeader ) page )-> pd_pagesize_version & (uint16 ) 0xFF00 );
280+ return (Size ) (((const PageHeaderData * ) page )-> pd_pagesize_version & (uint16 ) 0xFF00 );
281281}
282282
283283/*
284284 * PageGetPageLayoutVersion
285285 * Returns the page layout version of a page.
286286 */
287287static inline uint8
288- PageGetPageLayoutVersion (Page page )
288+ PageGetPageLayoutVersion (const PageData * page )
289289{
290- return (((PageHeader ) page )-> pd_pagesize_version & 0x00FF );
290+ return (((const PageHeaderData * ) page )-> pd_pagesize_version & 0x00FF );
291291}
292292
293293/*
@@ -315,9 +315,9 @@ PageSetPageSizeAndVersion(Page page, Size size, uint8 version)
315315 * Returns size of special space on a page.
316316 */
317317static inline uint16
318- PageGetSpecialSize (Page page )
318+ PageGetSpecialSize (const PageData * page )
319319{
320- return (PageGetPageSize (page ) - ((PageHeader ) page )-> pd_special );
320+ return (PageGetPageSize (page ) - ((const PageHeaderData * ) page )-> pd_special );
321321}
322322
323323/*
@@ -326,23 +326,22 @@ PageGetSpecialSize(Page page)
326326 * This is intended to catch use of the pointer before page initialization.
327327 */
328328static inline void
329- PageValidateSpecialPointer (Page page )
329+ PageValidateSpecialPointer (const PageData * page )
330330{
331331 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 );
334334}
335335
336336/*
337337 * PageGetSpecialPointer
338338 * Returns pointer to special space on a page.
339339 */
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+ )
346345
347346/*
348347 * PageGetItem
@@ -353,12 +352,12 @@ PageGetSpecialPointer(Page page)
353352 * The semantics may change in the future.
354353 */
355354static inline Item
356- PageGetItem (Page page , ItemId itemId )
355+ PageGetItem (const PageData * page , const ItemIdData * itemId )
357356{
358357 Assert (page );
359358 Assert (ItemIdHasStorage (itemId ));
360359
361- return (Item ) (((char * ) page ) + ItemIdGetOffset (itemId ));
360+ return (Item ) (((const char * ) page ) + ItemIdGetOffset (itemId ));
362361}
363362
364363/*
@@ -371,9 +370,9 @@ PageGetItem(Page page, ItemId itemId)
371370 * return zero to ensure sane behavior.
372371 */
373372static inline OffsetNumber
374- PageGetMaxOffsetNumber (Page page )
373+ PageGetMaxOffsetNumber (const PageData * page )
375374{
376- PageHeader pageheader = (PageHeader ) page ;
375+ const PageHeaderData * pageheader = (const PageHeaderData * ) page ;
377376
378377 if (pageheader -> pd_lower <= SizeOfPageHeaderData )
379378 return 0 ;
@@ -385,7 +384,7 @@ PageGetMaxOffsetNumber(Page page)
385384 * Additional functions for access to page headers.
386385 */
387386static inline XLogRecPtr
388- PageGetLSN (const char * page )
387+ PageGetLSN (const PageData * page )
389388{
390389 return PageXLogRecPtrGet (((const PageHeaderData * ) page )-> pd_lsn );
391390}
@@ -396,9 +395,9 @@ PageSetLSN(Page page, XLogRecPtr lsn)
396395}
397396
398397static inline bool
399- PageHasFreeLinePointers (Page page )
398+ PageHasFreeLinePointers (const PageData * page )
400399{
401- return ((PageHeader ) page )-> pd_flags & PD_HAS_FREE_LINES ;
400+ return ((const PageHeaderData * ) page )-> pd_flags & PD_HAS_FREE_LINES ;
402401}
403402static inline void
404403PageSetHasFreeLinePointers (Page page )
@@ -412,9 +411,9 @@ PageClearHasFreeLinePointers(Page page)
412411}
413412
414413static inline bool
415- PageIsFull (Page page )
414+ PageIsFull (const PageData * page )
416415{
417- return ((PageHeader ) page )-> pd_flags & PD_PAGE_FULL ;
416+ return ((const PageHeaderData * ) page )-> pd_flags & PD_PAGE_FULL ;
418417}
419418static inline void
420419PageSetFull (Page page )
@@ -428,9 +427,9 @@ PageClearFull(Page page)
428427}
429428
430429static inline bool
431- PageIsAllVisible (Page page )
430+ PageIsAllVisible (const PageData * page )
432431{
433- return ((PageHeader ) page )-> pd_flags & PD_ALL_VISIBLE ;
432+ return ((const PageHeaderData * ) page )-> pd_flags & PD_ALL_VISIBLE ;
434433}
435434static inline void
436435PageSetAllVisible (Page page )
@@ -490,19 +489,19 @@ StaticAssertDecl(BLCKSZ == ((BLCKSZ / sizeof(size_t)) * sizeof(size_t)),
490489 "BLCKSZ has to be a multiple of sizeof(size_t)" );
491490
492491extern 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 );
494493extern OffsetNumber PageAddItemExtended (Page page , Item item , Size size ,
495494 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 );
499498extern void PageRestoreTempPage (Page tempPage , Page oldPage );
500499extern void PageRepairFragmentation (Page page );
501500extern 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 );
506505extern void PageIndexTupleDelete (Page page , OffsetNumber offnum );
507506extern void PageIndexMultiDelete (Page page , OffsetNumber * itemnos , int nitems );
508507extern void PageIndexTupleDeleteNoCompact (Page page , OffsetNumber offnum );
0 commit comments