Hello, Does it make sense to put a check of "isinf(val)" and ereport prior to the snprintf()? It is a lightweight check more than set_var_from_str().
Thanks, 2017-09-27 19:41 GMT+09:00 Taiki Kondo <tai-ko...@yk.jp.nec.com>: > 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. > > > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers > -- HeteroDB, Inc / The PG-Strom Project KaiGai Kohei <kai...@heterodb.com> -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers