Patch applied.  Thanks.

---------------------------------------------------------------------------


 Manfred Koizar wrote:
> On Mon, 24 Jun 2002 12:53:42 -0400, Tom Lane <[EMAIL PROTECTED]> wrote:
> >the extra level of struct naming for pd_opaque has no obvious
> >usefulness.
> >
> >> [...] should I post a patch that puts pagesize directly into
> >> PageHeaderData?
> >
> >If you're so inclined.  Given that pd_opaque is hidden in those macros,
> >there wouldn't be much of any gain in readability either, so I haven't
> >worried about changing the declaration.
> 
> Thanks for the clarification.  Here is the patch.  Not much gain, but at
> least it saves the next junior hacker from scratching his head ...
> 
> Cordialmente
>  Manfredinho :-)
> 
> PS: Please do not apply before "Page access" patch from 2002-06-20.
> 
> diff -ru ../base/src/backend/access/hash/hashutil.c 
>src/backend/access/hash/hashutil.c
> --- ../base/src/backend/access/hash/hashutil.c        2002-05-21 11:54:11.000000000 
>+0200
> +++ src/backend/access/hash/hashutil.c        2002-06-21 16:43:24.000000000 +0200
> @@ -131,13 +131,13 @@
>       HashPageOpaque opaque;
>  
>       Assert(page);
> -     Assert(((PageHeader) (page))->pd_lower >= (sizeof(PageHeaderData) - 
>sizeof(ItemIdData)));
> +     Assert(((PageHeader) (page))->pd_lower >= SizeOfPageHeaderData);
>  #if 1
>       Assert(((PageHeader) (page))->pd_upper <=
>                  (BLCKSZ - MAXALIGN(sizeof(HashPageOpaqueData))));
>       Assert(((PageHeader) (page))->pd_special ==
>                  (BLCKSZ - MAXALIGN(sizeof(HashPageOpaqueData))));
> -     Assert(((PageHeader) (page))->pd_opaque.od_pagesize == BLCKSZ);
> +     Assert(PageGetPageSize(page) == BLCKSZ);
>  #endif
>       if (flags)
>       {
> diff -ru ../base/src/include/storage/bufpage.h src/include/storage/bufpage.h
> --- ../base/src/include/storage/bufpage.h     2002-06-20 12:22:21.000000000 +0200
> +++ src/include/storage/bufpage.h     2002-06-21 16:38:17.000000000 +0200
> @@ -65,8 +65,7 @@
>   * byte-offset position, tuples can be physically shuffled on a page
>   * whenever the need arises.
>   *
> - * AM-generic per-page information is kept in the pd_opaque field of
> - * the PageHeaderData.       (Currently, only the page size is kept here.)
> + * AM-generic per-page information is kept in PageHeaderData.
>   *
>   * AM-specific per-page data (if any) is kept in the area marked "special
>   * space"; each AM has an "opaque" structure defined somewhere that is
> @@ -92,25 +91,18 @@
>  
>  
>  /*
> + * disk page organization
>   * space management information generic to any page
>   *
> - *           od_pagesize             - size in bytes.
> - *                                             Minimum possible page size is 
>perhaps 64B to fit
> - *                                             page header, opaque space and a 
>minimal tuple;
> - *                                             of course, in reality you want it 
>much bigger.
> - *                                             On the high end, we can only support 
>pages up
> - *                                             to 32KB because lp_off/lp_len are 15 
>bits.
> - */
> -typedef struct OpaqueData
> -{
> -     uint16          od_pagesize;
> -} OpaqueData;
> -
> -typedef OpaqueData *Opaque;
> -
> -
> -/*
> - * disk page organization
> + *           pd_lower        - offset to start of free space.
> + *           pd_upper        - offset to end of free space.
> + *           pd_special      - offset to start of special space.
> + *           pd_pagesize     - size in bytes.
> + *                                     Minimum possible page size is perhaps 64B to 
>fit
> + *                                     page header, opaque space and a minimal 
>tuple;
> + *                                     of course, in reality you want it much 
>bigger.
> + *                                     On the high end, we can only support pages up
> + *                                     to 32KB because lp_off/lp_len are 15 bits.
>   */
>  typedef struct PageHeaderData
>  {
> @@ -124,7 +116,7 @@
>       LocationIndex pd_lower;         /* offset to start of free space */
>       LocationIndex pd_upper;         /* offset to end of free space */
>       LocationIndex pd_special;       /* offset to start of special space */
> -     OpaqueData      pd_opaque;              /* AM-generic information */
> +     uint16          pd_pagesize;
>       ItemIdData      pd_linp[1];             /* beginning of line pointer array */
>  } PageHeaderData;
>  
> @@ -216,14 +208,14 @@
>   * however, it can be called on a page for which there is no buffer.
>   */
>  #define PageGetPageSize(page) \
> -     ((Size) ((PageHeader) (page))->pd_opaque.od_pagesize)
> +     ((Size) ((PageHeader) (page))->pd_pagesize)
>  
>  /*
>   * PageSetPageSize
>   *           Sets the page size of a page.
>   */
>  #define PageSetPageSize(page, size) \
> -     (((PageHeader) (page))->pd_opaque.od_pagesize = (size))
> +     (((PageHeader) (page))->pd_pagesize = (size))
>  
>  /* ----------------
>   *           page special data macros
> 
> Servus
>  Manfred
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
> http://www.postgresql.org/users-lounge/docs/faq.html
> 
> 
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026



---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Reply via email to