mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
pgstatindex: Insert some casts to prevent overflow.
This could cause hash indexes to report greater than 100% free space. Ashutosh Sharma, reviewed by Amit Kapila Discussion: http://postgr.es/m/CAE9k0PnCKfg-ZK1CwGZJPF1yKcG2A=GUgC3BMdNMzLAXVOo4Eg@mail.gmail.com
This commit is contained in:
parent
ec99dd5aee
commit
0b7ba3d647
@ -687,13 +687,14 @@ pgstathashindex(PG_FUNCTION_ARGS)
|
|||||||
index_close(rel, AccessShareLock);
|
index_close(rel, AccessShareLock);
|
||||||
|
|
||||||
/* Count unused pages as free space. */
|
/* Count unused pages as free space. */
|
||||||
stats.free_space += stats.unused_pages * stats.space_per_page;
|
stats.free_space += (uint64) stats.unused_pages * stats.space_per_page;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Total space available for tuples excludes the metapage and the bitmap
|
* Total space available for tuples excludes the metapage and the bitmap
|
||||||
* pages.
|
* pages.
|
||||||
*/
|
*/
|
||||||
total_space = (nblocks - (stats.bitmap_pages + 1)) * stats.space_per_page;
|
total_space = (uint64) (nblocks - (stats.bitmap_pages + 1)) *
|
||||||
|
stats.space_per_page;
|
||||||
|
|
||||||
if (total_space == 0)
|
if (total_space == 0)
|
||||||
free_percent = 0.0;
|
free_percent = 0.0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user