diff --git a/src/backend/access/hash/hashutil.c b/src/backend/access/hash/hashutil.c
index 1cc4a56993d95c950f612630e537ba2bb92fa353..224f28e6d558d7f730a2878fa1954e6547d5dd89 100644
--- a/src/backend/access/hash/hashutil.c
+++ b/src/backend/access/hash/hashutil.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashutil.c,v 1.30 2002/06/20 20:29:24 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashutil.c,v 1.31 2002/07/02 06:18:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -131,13 +131,13 @@ _hash_checkpage(Page page, int flags)
 	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 --git a/src/include/storage/bufpage.h b/src/include/storage/bufpage.h
index 31a858ec4ff8aeee1eb6c07c4f8c71cf95cc1fd0..84d4c7fff1720a1aff7f8c7204e237197a51a05f 100644
--- a/src/include/storage/bufpage.h
+++ b/src/include/storage/bufpage.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: bufpage.h,v 1.49 2002/07/02 05:48:44 momjian Exp $
+ * $Id: bufpage.h,v 1.50 2002/07/02 06:18:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -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 @@ typedef uint16 LocationIndex;
 
 
 /*
+ * 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 @@ typedef struct PageHeaderData
 	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 @@ typedef enum
  * 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