diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c index c0ac1ae5bfb..509e31f1a85 100644 --- a/contrib/pgstattuple/pgstatindex.c +++ b/contrib/pgstattuple/pgstatindex.c @@ -377,9 +377,17 @@ pgstatindex(PG_FUNCTION_ARGS) values[j] = palloc(32); snprintf(values[j++], 32, "%d", indexStat.deleted_pages); values[j] = palloc(32); - snprintf(values[j++], 32, "%.2f", 100.0 - (float) indexStat.free_space / (float) indexStat.max_avail * 100.0); + if (indexStat.max_avail > 0) + snprintf(values[j++], 32, "%.2f", + 100.0 - (double) indexStat.free_space / (double) indexStat.max_avail * 100.0); + else + snprintf(values[j++], 32, "NaN"); values[j] = palloc(32); - snprintf(values[j++], 32, "%.2f", (float) indexStat.fragments / (float) indexStat.leaf_pages * 100.0); + if (indexStat.leaf_pages > 0) + snprintf(values[j++], 32, "%.2f", + (double) indexStat.fragments / (double) indexStat.leaf_pages * 100.0); + else + snprintf(values[j++], 32, "NaN"); tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc), values);