Hi all, I build PostgreSQL 9.6.5 by Visual Studio 2013 on Windows, I found weird behavior on it.
I execute following SQL, occurring ERROR is expected, but I got mysterious value 1. postgres=# select (float8 'inf')::numeric; numeric --------- 1 (1 row) On Windows, at least Visual Studio, the string of float/double value meaning infinity is "1.#INF" not "inf". So, set_var_from_str() called from float8_numeric() in utils/adt/numeric.c will return numeric value 1, and no one checks this situation. This situation is also occurring by cast from float4. I wrote a patch to add check this situation. Please find attached. Sincerely, -- Taiki Kondo NEC Solution Innovators, Ltd.
fix_infinity_to_1.patch
Description: fix_infinity_to_1.patch
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers