mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
pgstattuple: Use double consistently for percentages
pgstattuple uses data type double for other percentage calculations and exposes those values to the users via the float8 data type. However, scanned_percent in struct output_type is of type uint64, even though it is later returned via Float8GetDatum(). Change it to use double to be inline with other percentages. Author: Bharath Rupireddy Reviewed-by: Peter Eisentraut Discussion: https://www.postgresql.org/message-id/36ee692b-232f-0484-ce94-dc39d82021ad%40enterprisedb.com
This commit is contained in:
@ -38,7 +38,7 @@ Datum pgstattuple_approx_internal(Oid relid, FunctionCallInfo fcinfo);
|
|||||||
typedef struct output_type
|
typedef struct output_type
|
||||||
{
|
{
|
||||||
uint64 table_len;
|
uint64 table_len;
|
||||||
uint64 scanned_percent;
|
double scanned_percent;
|
||||||
uint64 tuple_count;
|
uint64 tuple_count;
|
||||||
uint64 tuple_len;
|
uint64 tuple_len;
|
||||||
double tuple_percent;
|
double tuple_percent;
|
||||||
@ -203,7 +203,7 @@ statapprox_heap(Relation rel, output_type *stat)
|
|||||||
*/
|
*/
|
||||||
if (nblocks != 0)
|
if (nblocks != 0)
|
||||||
{
|
{
|
||||||
stat->scanned_percent = 100 * scanned / nblocks;
|
stat->scanned_percent = 100.0 * scanned / nblocks;
|
||||||
stat->tuple_percent = 100.0 * stat->tuple_len / stat->table_len;
|
stat->tuple_percent = 100.0 * stat->tuple_len / stat->table_len;
|
||||||
stat->dead_tuple_percent = 100.0 * stat->dead_tuple_len / stat->table_len;
|
stat->dead_tuple_percent = 100.0 * stat->dead_tuple_len / stat->table_len;
|
||||||
stat->free_percent = 100.0 * stat->free_space / stat->table_len;
|
stat->free_percent = 100.0 * stat->free_space / stat->table_len;
|
||||||
|
Reference in New Issue
Block a user