aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/pageinspect/rawpage.c8
-rw-r--r--src/backend/storage/buffer/bufmgr.c4
2 files changed, 7 insertions, 5 deletions
diff --git a/contrib/pageinspect/rawpage.c b/contrib/pageinspect/rawpage.c
index 2607576c378..1548dc2e257 100644
--- a/contrib/pageinspect/rawpage.c
+++ b/contrib/pageinspect/rawpage.c
@@ -135,9 +135,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 58b64f6570d..aeb814e9efc 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -1926,8 +1926,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)