diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c index f0d6341bd16145847a32f6c0a024086ff39a3f07..178065ceda57f91142675966a939889a4d2eed29 100644 --- a/contrib/pgstattuple/pgstatindex.c +++ b/contrib/pgstattuple/pgstatindex.c @@ -235,9 +235,17 @@ pgstatindex(PG_FUNCTION_ARGS) values[j] = palloc(32); snprintf(values[j++], 32, INT64_FORMAT, indexStat.deleted_pages); values[j] = palloc(32); - snprintf(values[j++], 32, "%.2f", 100.0 - (double) indexStat.free_space / (double) 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", (double) indexStat.fragments / (double) 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);