aboutsummaryrefslogtreecommitdiff
path: root/contrib/pgstattuple/pgstatapprox.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2022-09-12 10:19:17 +0200
committerPeter Eisentraut <peter@eisentraut.org>2022-09-12 10:19:17 +0200
commit07d8af5e5e0cf5d5187353809920f344a5d20684 (patch)
treee9d4e4a0dc64ba525f322acad7dc3642603aede9 /contrib/pgstattuple/pgstatapprox.c
parent57796a0f15f8fd3c908aa885a7ebb8ae47ce9880 (diff)
downloadpostgresql-07d8af5e5e0cf5d5187353809920f344a5d20684.tar.gz
postgresql-07d8af5e5e0cf5d5187353809920f344a5d20684.zip
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
Diffstat (limited to 'contrib/pgstattuple/pgstatapprox.c')
-rw-r--r--contrib/pgstattuple/pgstatapprox.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/pgstattuple/pgstatapprox.c b/contrib/pgstattuple/pgstatapprox.c
index 15ddc322392..b827728326b 100644
--- a/contrib/pgstattuple/pgstatapprox.c
+++ b/contrib/pgstattuple/pgstatapprox.c
@@ -38,7 +38,7 @@ Datum pgstattuple_approx_internal(Oid relid, FunctionCallInfo fcinfo);
typedef struct output_type
{
uint64 table_len;
- uint64 scanned_percent;
+ double scanned_percent;
uint64 tuple_count;
uint64 tuple_len;
double tuple_percent;
@@ -203,7 +203,7 @@ statapprox_heap(Relation rel, output_type *stat)
*/
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->dead_tuple_percent = 100.0 * stat->dead_tuple_len / stat->table_len;
stat->free_percent = 100.0 * stat->free_space / stat->table_len;