]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix pgstatindex() to give consistent results for empty indexes.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 25 Aug 2011 03:50:25 +0000 (23:50 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 25 Aug 2011 03:50:25 +0000 (23:50 -0400)
commite99bb79e505f7af40376b7ee0ad8547b0e9ed370
tree606001a930914b4fcc4a14e8f9b72a684b146ede
parentcb54b6614b6c34f5396d29de1e92b34a83b6c072
Fix pgstatindex() to give consistent results for empty indexes.

For an empty index, the pgstatindex() function would compute 0.0/0.0 for
its avg_leaf_density and leaf_fragmentation outputs.  On machines that
follow the IEEE float arithmetic standard with any care, that results in
a NaN.  However, per report from Rushabh Lathia, Microsoft couldn't
manage to get this right, so you'd get a bizarre error on Windows.

Fix by forcing the results to be NaN explicitly, rather than relying on
the division operator to give that or the snprintf function to print it
correctly.  I have some doubts that this is really the most useful
definition, but it seems better to remain backward-compatible with
those platforms for which the behavior wasn't completely broken.

Back-patch to 8.2, since the code is like that in all current releases.
contrib/pgstattuple/pgstatindex.c