88 *
99 *
1010 * IDENTIFICATION
11- * $Header: /cvsroot/pgsql/src/backend/access/hash/hashovfl.c,v 1.39 2003/09/02 02: 18:38 tgl Exp $
11+ * $Header: /cvsroot/pgsql/src/backend/access/hash/hashovfl.c,v 1.40 2003/09/02 18:13:30 tgl Exp $
1212 *
1313 * NOTES
1414 * Overflow pages look like ordinary relation pages.
@@ -97,12 +97,12 @@ _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf)
9797
9898 /* this had better be the last page in a bucket chain */
9999 page = BufferGetPage (buf );
100- _hash_checkpage (page , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
100+ _hash_checkpage (rel , page , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
101101 pageopaque = (HashPageOpaque ) PageGetSpecialPointer (page );
102102 Assert (!BlockNumberIsValid (pageopaque -> hasho_nextblkno ));
103103
104104 metap = (HashMetaPage ) BufferGetPage (metabuf );
105- _hash_checkpage ((Page ) metap , LH_META_PAGE );
105+ _hash_checkpage (rel , (Page ) metap , LH_META_PAGE );
106106
107107 /* allocate an empty overflow page */
108108 ovflblkno = _hash_getovflpage (rel , metabuf );
@@ -114,9 +114,9 @@ _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf)
114114 ovflopaque = (HashPageOpaque ) PageGetSpecialPointer (ovflpage );
115115 ovflopaque -> hasho_prevblkno = BufferGetBlockNumber (buf );
116116 ovflopaque -> hasho_nextblkno = InvalidBlockNumber ;
117- ovflopaque -> hasho_flag = LH_OVERFLOW_PAGE ;
118- ovflopaque -> hasho_oaddr = 0 ;
119117 ovflopaque -> hasho_bucket = pageopaque -> hasho_bucket ;
118+ ovflopaque -> hasho_flag = LH_OVERFLOW_PAGE ;
119+ ovflopaque -> hasho_filler = HASHO_FILL ;
120120 _hash_wrtnorelbuf (ovflbuf );
121121
122122 /* logically chain overflow page to previous page */
@@ -174,7 +174,7 @@ _hash_getovflpage(Relation rel, Buffer metabuf)
174174 mapblkno = metap -> hashm_mapp [i ];
175175 mapbuf = _hash_getbuf (rel , mapblkno , HASH_WRITE );
176176 mappage = BufferGetPage (mapbuf );
177- _hash_checkpage (mappage , LH_BITMAP_PAGE );
177+ _hash_checkpage (rel , mappage , LH_BITMAP_PAGE );
178178 freep = HashPageGetBitmap (mappage );
179179
180180 if (i != first_page )
@@ -310,11 +310,11 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
310310
311311 metabuf = _hash_getbuf (rel , HASH_METAPAGE , HASH_WRITE );
312312 metap = (HashMetaPage ) BufferGetPage (metabuf );
313- _hash_checkpage ((Page ) metap , LH_META_PAGE );
313+ _hash_checkpage (rel , (Page ) metap , LH_META_PAGE );
314314
315315 ovflblkno = BufferGetBlockNumber (ovflbuf );
316316 ovflpage = BufferGetPage (ovflbuf );
317- _hash_checkpage (ovflpage , LH_OVERFLOW_PAGE );
317+ _hash_checkpage (rel , ovflpage , LH_OVERFLOW_PAGE );
318318 ovflopaque = (HashPageOpaque ) PageGetSpecialPointer (ovflpage );
319319 nextblkno = ovflopaque -> hasho_nextblkno ;
320320 prevblkno = ovflopaque -> hasho_prevblkno ;
@@ -337,7 +337,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
337337 Page prevpage = BufferGetPage (prevbuf );
338338 HashPageOpaque prevopaque = (HashPageOpaque ) PageGetSpecialPointer (prevpage );
339339
340- _hash_checkpage (prevpage , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
340+ _hash_checkpage (rel , prevpage , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
341341 Assert (prevopaque -> hasho_bucket == bucket );
342342 prevopaque -> hasho_nextblkno = nextblkno ;
343343 _hash_wrtbuf (rel , prevbuf );
@@ -348,7 +348,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
348348 Page nextpage = BufferGetPage (nextbuf );
349349 HashPageOpaque nextopaque = (HashPageOpaque ) PageGetSpecialPointer (nextpage );
350350
351- _hash_checkpage (nextpage , LH_OVERFLOW_PAGE );
351+ _hash_checkpage (rel , nextpage , LH_OVERFLOW_PAGE );
352352 Assert (nextopaque -> hasho_bucket == bucket );
353353 nextopaque -> hasho_prevblkno = prevblkno ;
354354 _hash_wrtbuf (rel , nextbuf );
@@ -368,7 +368,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
368368
369369 mapbuf = _hash_getbuf (rel , blkno , HASH_WRITE );
370370 mappage = BufferGetPage (mapbuf );
371- _hash_checkpage (mappage , LH_BITMAP_PAGE );
371+ _hash_checkpage (rel , mappage , LH_BITMAP_PAGE );
372372 freep = HashPageGetBitmap (mappage );
373373 CLRBIT (freep , bitmapbit );
374374 _hash_wrtbuf (rel , mapbuf );
@@ -406,11 +406,11 @@ _hash_initbitmap(Relation rel, HashMetaPage metap, BlockNumber blkno)
406406 pg = BufferGetPage (buf );
407407 _hash_pageinit (pg , BufferGetPageSize (buf ));
408408 op = (HashPageOpaque ) PageGetSpecialPointer (pg );
409- op -> hasho_oaddr = 0 ;
410409 op -> hasho_prevblkno = InvalidBlockNumber ;
411410 op -> hasho_nextblkno = InvalidBlockNumber ;
412- op -> hasho_flag = LH_BITMAP_PAGE ;
413411 op -> hasho_bucket = -1 ;
412+ op -> hasho_flag = LH_BITMAP_PAGE ;
413+ op -> hasho_filler = HASHO_FILL ;
414414
415415 /* set all of the bits to 1 */
416416 freep = HashPageGetBitmap (pg );
@@ -471,7 +471,7 @@ _hash_squeezebucket(Relation rel,
471471 wblkno = bucket_blkno ;
472472 wbuf = _hash_getbuf (rel , wblkno , HASH_WRITE );
473473 wpage = BufferGetPage (wbuf );
474- _hash_checkpage (wpage , LH_BUCKET_PAGE );
474+ _hash_checkpage (rel , wpage , LH_BUCKET_PAGE );
475475 wopaque = (HashPageOpaque ) PageGetSpecialPointer (wpage );
476476
477477 /*
@@ -495,7 +495,7 @@ _hash_squeezebucket(Relation rel,
495495 _hash_relbuf (rel , rbuf , HASH_WRITE );
496496 rbuf = _hash_getbuf (rel , rblkno , HASH_WRITE );
497497 rpage = BufferGetPage (rbuf );
498- _hash_checkpage (rpage , LH_OVERFLOW_PAGE );
498+ _hash_checkpage (rel , rpage , LH_OVERFLOW_PAGE );
499499 Assert (!PageIsEmpty (rpage ));
500500 ropaque = (HashPageOpaque ) PageGetSpecialPointer (rpage );
501501 Assert (ropaque -> hasho_bucket == bucket );
@@ -531,7 +531,7 @@ _hash_squeezebucket(Relation rel,
531531
532532 wbuf = _hash_getbuf (rel , wblkno , HASH_WRITE );
533533 wpage = BufferGetPage (wbuf );
534- _hash_checkpage (wpage , LH_OVERFLOW_PAGE );
534+ _hash_checkpage (rel , wpage , LH_OVERFLOW_PAGE );
535535 Assert (!PageIsEmpty (wpage ));
536536 wopaque = (HashPageOpaque ) PageGetSpecialPointer (wpage );
537537 Assert (wopaque -> hasho_bucket == bucket );
@@ -576,7 +576,7 @@ _hash_squeezebucket(Relation rel,
576576
577577 rbuf = _hash_getbuf (rel , rblkno , HASH_WRITE );
578578 rpage = BufferGetPage (rbuf );
579- _hash_checkpage (rpage , LH_OVERFLOW_PAGE );
579+ _hash_checkpage (rel , rpage , LH_OVERFLOW_PAGE );
580580 Assert (!PageIsEmpty (rpage ));
581581 ropaque = (HashPageOpaque ) PageGetSpecialPointer (rpage );
582582 Assert (ropaque -> hasho_bucket == bucket );
0 commit comments