|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.235 2008/08/01 13:16:08 alvherre Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.236 2008/08/05 15:09:04 tgl Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -352,28 +352,31 @@ ReadBuffer_common(SMgrRelation smgr, bool isLocalBuf, BlockNumber blockNum,
|
352 | 352 | if (zeroPage)
|
353 | 353 | MemSet((char *) bufBlock, 0, BLCKSZ);
|
354 | 354 | else
|
355 |
| - smgrread(smgr, blockNum, (char *) bufBlock); |
356 |
| - /* check for garbage data */ |
357 |
| - if (!PageHeaderIsValid((PageHeader) bufBlock)) |
358 | 355 | {
|
359 |
| - if (zero_damaged_pages) |
| 356 | + smgrread(smgr, blockNum, (char *) bufBlock); |
| 357 | + |
| 358 | + /* check for garbage data */ |
| 359 | + if (!PageHeaderIsValid((PageHeader) bufBlock)) |
360 | 360 | {
|
361 |
| - ereport(WARNING, |
362 |
| - (errcode(ERRCODE_DATA_CORRUPTED), |
363 |
| - errmsg("invalid page header in block %u of relation %u/%u/%u; zeroing out page", |
364 |
| - blockNum, |
365 |
| - smgr->smgr_rnode.spcNode, |
366 |
| - smgr->smgr_rnode.dbNode, |
367 |
| - smgr->smgr_rnode.relNode))); |
368 |
| - MemSet((char *) bufBlock, 0, BLCKSZ); |
| 361 | + if (zero_damaged_pages) |
| 362 | + { |
| 363 | + ereport(WARNING, |
| 364 | + (errcode(ERRCODE_DATA_CORRUPTED), |
| 365 | + errmsg("invalid page header in block %u of relation %u/%u/%u; zeroing out page", |
| 366 | + blockNum, |
| 367 | + smgr->smgr_rnode.spcNode, |
| 368 | + smgr->smgr_rnode.dbNode, |
| 369 | + smgr->smgr_rnode.relNode))); |
| 370 | + MemSet((char *) bufBlock, 0, BLCKSZ); |
| 371 | + } |
| 372 | + else |
| 373 | + ereport(ERROR, |
| 374 | + (errcode(ERRCODE_DATA_CORRUPTED), |
| 375 | + errmsg("invalid page header in block %u of relation %u/%u/%u", |
| 376 | + blockNum, smgr->smgr_rnode.spcNode, |
| 377 | + smgr->smgr_rnode.dbNode, |
| 378 | + smgr->smgr_rnode.relNode))); |
369 | 379 | }
|
370 |
| - else |
371 |
| - ereport(ERROR, |
372 |
| - (errcode(ERRCODE_DATA_CORRUPTED), |
373 |
| - errmsg("invalid page header in block %u of relation %u/%u/%u", |
374 |
| - blockNum, smgr->smgr_rnode.spcNode, |
375 |
| - smgr->smgr_rnode.dbNode, |
376 |
| - smgr->smgr_rnode.relNode))); |
377 | 380 | }
|
378 | 381 | }
|
379 | 382 |
|
|
0 commit comments