Fix off-by-one error in Assertion.
authorHeikki Linnakangas <[email protected]>
Tue, 19 May 2015 16:21:46 +0000 (19:21 +0300)
committerHeikki Linnakangas <[email protected]>
Tue, 19 May 2015 16:26:02 +0000 (19:26 +0300)
The point of the assertion is to ensure that the arrays allocated in stack
are large enough, but the check was one item short.

This won't matter in practice because MaxIndexTuplesPerPage is an
overestimate, so you can't have that many items on a page in reality.
But let's be tidy.

Spotted by Anastasia Lubennikova. Backpatch to all supported versions, like
the patch that added the assertion.

src/backend/storage/page/bufpage.c

index eb09722e8c242d6d6b8aa950e811197390b466d7..b99e6a8205918b8abfbdfdc87ffa96396a2aa9cb 100644 (file)
@@ -722,7 +722,7 @@ PageIndexMultiDelete(Page page, OffsetNumber *itemnos, int nitems)
    int         nextitm;
    OffsetNumber offnum;
 
-   Assert(nitems < MaxIndexTuplesPerPage);
+   Assert(nitems <= MaxIndexTuplesPerPage);
 
    /*
     * If there aren't very many items to delete, then retail