]> granicus.if.org Git - postgresql/commit
Try to be more consistent about accepting denormalized float8 numbers.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 1 Feb 2012 18:11:16 +0000 (13:11 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 1 Feb 2012 18:11:16 +0000 (13:11 -0500)
commitc318aeed84438619fc6b8c647def1730a110f04b
tree2e273aca3392f065e9184eb79c546c2e98ca0dbf
parentb2e431a4db81a735d1474c4d1565a20b835878c9
Try to be more consistent about accepting denormalized float8 numbers.

On some platforms, strtod() reports ERANGE for a denormalized value (ie,
one that can be represented as distinct from zero, but is too small to have
full precision).  On others, it doesn't.  It seems better to try to accept
these values consistently, so add a test to see if the result value
indicates a true out-of-range condition.  This should be okay per Single
Unix Spec.  On machines where the underlying math isn't IEEE standard, the
behavior for such small numbers may not be very consistent, but then it
wouldn't be anyway.

Marti Raudsepp, after a proposal by Jeroen Vermeulen
src/backend/utils/adt/float.c