diff --git a/contrib/pageinspect/rawpage.c b/contrib/pageinspect/rawpage.c index f51a4e31f51ae5bd00f31dc4bd3daa5015d5917c..8b1a29f6adcfeaa315c10165d65aca86c820530c 100644 --- a/contrib/pageinspect/rawpage.c +++ b/contrib/pageinspect/rawpage.c @@ -132,9 +132,11 @@ get_raw_page_internal(text *relname, ForkNumber forknum, BlockNumber blkno) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot access temporary tables of other sessions"))); - if (blkno >= RelationGetNumberOfBlocks(rel)) - elog(ERROR, "block number %u is out of range for relation \"%s\"", - blkno, RelationGetRelationName(rel)); + if (blkno >= RelationGetNumberOfBlocksInFork(rel, forknum)) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("block number %u is out of range for relation \"%s\"", + blkno, RelationGetRelationName(rel)))); /* Initialize buffer to copy to */ raw_page = (bytea *) palloc(BLCKSZ + VARHDRSZ); diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 46373b6012609ee56066d5a691cf1b3c3985c268..101f1a3ef47856e5d4683c5d2e4d755f0c20f262 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -1974,8 +1974,8 @@ FlushBuffer(volatile BufferDesc *buf, SMgrRelation reln) } /* - * RelationGetNumberOfBlocks - * Determines the current number of pages in the relation. + * RelationGetNumberOfBlocksInFork + * Determines the current number of pages in the specified relation fork. */ BlockNumber RelationGetNumberOfBlocksInFork(Relation relation, ForkNumber forkNum)