8
8
*
9
9
*
10
10
* 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 $
12
12
*
13
13
* NOTES
14
14
* Overflow pages look like ordinary relation pages.
@@ -97,12 +97,12 @@ _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf)
97
97
98
98
/* this had better be the last page in a bucket chain */
99
99
page = BufferGetPage (buf );
100
- _hash_checkpage (page , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
100
+ _hash_checkpage (rel , page , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
101
101
pageopaque = (HashPageOpaque ) PageGetSpecialPointer (page );
102
102
Assert (!BlockNumberIsValid (pageopaque -> hasho_nextblkno ));
103
103
104
104
metap = (HashMetaPage ) BufferGetPage (metabuf );
105
- _hash_checkpage ((Page ) metap , LH_META_PAGE );
105
+ _hash_checkpage (rel , (Page ) metap , LH_META_PAGE );
106
106
107
107
/* allocate an empty overflow page */
108
108
ovflblkno = _hash_getovflpage (rel , metabuf );
@@ -114,9 +114,9 @@ _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf)
114
114
ovflopaque = (HashPageOpaque ) PageGetSpecialPointer (ovflpage );
115
115
ovflopaque -> hasho_prevblkno = BufferGetBlockNumber (buf );
116
116
ovflopaque -> hasho_nextblkno = InvalidBlockNumber ;
117
- ovflopaque -> hasho_flag = LH_OVERFLOW_PAGE ;
118
- ovflopaque -> hasho_oaddr = 0 ;
119
117
ovflopaque -> hasho_bucket = pageopaque -> hasho_bucket ;
118
+ ovflopaque -> hasho_flag = LH_OVERFLOW_PAGE ;
119
+ ovflopaque -> hasho_filler = HASHO_FILL ;
120
120
_hash_wrtnorelbuf (ovflbuf );
121
121
122
122
/* logically chain overflow page to previous page */
@@ -174,7 +174,7 @@ _hash_getovflpage(Relation rel, Buffer metabuf)
174
174
mapblkno = metap -> hashm_mapp [i ];
175
175
mapbuf = _hash_getbuf (rel , mapblkno , HASH_WRITE );
176
176
mappage = BufferGetPage (mapbuf );
177
- _hash_checkpage (mappage , LH_BITMAP_PAGE );
177
+ _hash_checkpage (rel , mappage , LH_BITMAP_PAGE );
178
178
freep = HashPageGetBitmap (mappage );
179
179
180
180
if (i != first_page )
@@ -310,11 +310,11 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
310
310
311
311
metabuf = _hash_getbuf (rel , HASH_METAPAGE , HASH_WRITE );
312
312
metap = (HashMetaPage ) BufferGetPage (metabuf );
313
- _hash_checkpage ((Page ) metap , LH_META_PAGE );
313
+ _hash_checkpage (rel , (Page ) metap , LH_META_PAGE );
314
314
315
315
ovflblkno = BufferGetBlockNumber (ovflbuf );
316
316
ovflpage = BufferGetPage (ovflbuf );
317
- _hash_checkpage (ovflpage , LH_OVERFLOW_PAGE );
317
+ _hash_checkpage (rel , ovflpage , LH_OVERFLOW_PAGE );
318
318
ovflopaque = (HashPageOpaque ) PageGetSpecialPointer (ovflpage );
319
319
nextblkno = ovflopaque -> hasho_nextblkno ;
320
320
prevblkno = ovflopaque -> hasho_prevblkno ;
@@ -337,7 +337,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
337
337
Page prevpage = BufferGetPage (prevbuf );
338
338
HashPageOpaque prevopaque = (HashPageOpaque ) PageGetSpecialPointer (prevpage );
339
339
340
- _hash_checkpage (prevpage , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
340
+ _hash_checkpage (rel , prevpage , LH_BUCKET_PAGE | LH_OVERFLOW_PAGE );
341
341
Assert (prevopaque -> hasho_bucket == bucket );
342
342
prevopaque -> hasho_nextblkno = nextblkno ;
343
343
_hash_wrtbuf (rel , prevbuf );
@@ -348,7 +348,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
348
348
Page nextpage = BufferGetPage (nextbuf );
349
349
HashPageOpaque nextopaque = (HashPageOpaque ) PageGetSpecialPointer (nextpage );
350
350
351
- _hash_checkpage (nextpage , LH_OVERFLOW_PAGE );
351
+ _hash_checkpage (rel , nextpage , LH_OVERFLOW_PAGE );
352
352
Assert (nextopaque -> hasho_bucket == bucket );
353
353
nextopaque -> hasho_prevblkno = prevblkno ;
354
354
_hash_wrtbuf (rel , nextbuf );
@@ -368,7 +368,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf)
368
368
369
369
mapbuf = _hash_getbuf (rel , blkno , HASH_WRITE );
370
370
mappage = BufferGetPage (mapbuf );
371
- _hash_checkpage (mappage , LH_BITMAP_PAGE );
371
+ _hash_checkpage (rel , mappage , LH_BITMAP_PAGE );
372
372
freep = HashPageGetBitmap (mappage );
373
373
CLRBIT (freep , bitmapbit );
374
374
_hash_wrtbuf (rel , mapbuf );
@@ -406,11 +406,11 @@ _hash_initbitmap(Relation rel, HashMetaPage metap, BlockNumber blkno)
406
406
pg = BufferGetPage (buf );
407
407
_hash_pageinit (pg , BufferGetPageSize (buf ));
408
408
op = (HashPageOpaque ) PageGetSpecialPointer (pg );
409
- op -> hasho_oaddr = 0 ;
410
409
op -> hasho_prevblkno = InvalidBlockNumber ;
411
410
op -> hasho_nextblkno = InvalidBlockNumber ;
412
- op -> hasho_flag = LH_BITMAP_PAGE ;
413
411
op -> hasho_bucket = -1 ;
412
+ op -> hasho_flag = LH_BITMAP_PAGE ;
413
+ op -> hasho_filler = HASHO_FILL ;
414
414
415
415
/* set all of the bits to 1 */
416
416
freep = HashPageGetBitmap (pg );
@@ -471,7 +471,7 @@ _hash_squeezebucket(Relation rel,
471
471
wblkno = bucket_blkno ;
472
472
wbuf = _hash_getbuf (rel , wblkno , HASH_WRITE );
473
473
wpage = BufferGetPage (wbuf );
474
- _hash_checkpage (wpage , LH_BUCKET_PAGE );
474
+ _hash_checkpage (rel , wpage , LH_BUCKET_PAGE );
475
475
wopaque = (HashPageOpaque ) PageGetSpecialPointer (wpage );
476
476
477
477
/*
@@ -495,7 +495,7 @@ _hash_squeezebucket(Relation rel,
495
495
_hash_relbuf (rel , rbuf , HASH_WRITE );
496
496
rbuf = _hash_getbuf (rel , rblkno , HASH_WRITE );
497
497
rpage = BufferGetPage (rbuf );
498
- _hash_checkpage (rpage , LH_OVERFLOW_PAGE );
498
+ _hash_checkpage (rel , rpage , LH_OVERFLOW_PAGE );
499
499
Assert (!PageIsEmpty (rpage ));
500
500
ropaque = (HashPageOpaque ) PageGetSpecialPointer (rpage );
501
501
Assert (ropaque -> hasho_bucket == bucket );
@@ -531,7 +531,7 @@ _hash_squeezebucket(Relation rel,
531
531
532
532
wbuf = _hash_getbuf (rel , wblkno , HASH_WRITE );
533
533
wpage = BufferGetPage (wbuf );
534
- _hash_checkpage (wpage , LH_OVERFLOW_PAGE );
534
+ _hash_checkpage (rel , wpage , LH_OVERFLOW_PAGE );
535
535
Assert (!PageIsEmpty (wpage ));
536
536
wopaque = (HashPageOpaque ) PageGetSpecialPointer (wpage );
537
537
Assert (wopaque -> hasho_bucket == bucket );
@@ -576,7 +576,7 @@ _hash_squeezebucket(Relation rel,
576
576
577
577
rbuf = _hash_getbuf (rel , rblkno , HASH_WRITE );
578
578
rpage = BufferGetPage (rbuf );
579
- _hash_checkpage (rpage , LH_OVERFLOW_PAGE );
579
+ _hash_checkpage (rel , rpage , LH_OVERFLOW_PAGE );
580
580
Assert (!PageIsEmpty (rpage ));
581
581
ropaque = (HashPageOpaque ) PageGetSpecialPointer (rpage );
582
582
Assert (ropaque -> hasho_bucket == bucket );
0 commit comments