Fix a calculation in TidStoreCreate().
authorMasahiko Sawada <[email protected]>
Tue, 26 Mar 2024 04:06:06 +0000 (13:06 +0900)
committerMasahiko Sawada <[email protected]>
Tue, 26 Mar 2024 04:06:06 +0000 (13:06 +0900)
Since we expect that the max_bytes is in bytes, not in kilobytes, it
should not be multiplied by 1024.

Introduced by 30e144287a.

Reported-by: John Naylor, David Rowley
Reviewed-by: John Naylor
Discussion: https://postgr.es/m/CANWCAZZTE-14ofsucofTuhFsfuDGBNf%3DNZb22TMYT8bxA41oQQ%40mail.gmail.com
Discussion: https://postgr.es/m/CAApHDvojg82NDaDEpj1WEZSbVTafj%3DDRmW%2BFrkBdW8ScL4OFxA%40mail.gmail.com

src/backend/access/common/tidstore.c

index 745393806d377628cce0796801c7239a5cbbd809..f79141590edfbc2b12be83f11f460ea64d365858 100644 (file)
@@ -130,7 +130,7 @@ TidStoreCreate(size_t max_bytes, dsa_area *area, int tranche_id)
    ts->context = CurrentMemoryContext;
 
    /* choose the maxBlockSize to be no larger than 1/16 of max_bytes */
-   while (16 * maxBlockSize > max_bytes * 1024L)
+   while (16 * maxBlockSize > max_bytes)
        maxBlockSize >>= 1;
 
    if (maxBlockSize < ALLOCSET_DEFAULT_INITSIZE)