diff options
author | Michael Meskes <meskes@postgresql.org> | 2010-02-16 18:41:23 +0000 |
---|---|---|
committer | Michael Meskes <meskes@postgresql.org> | 2010-02-16 18:41:23 +0000 |
commit | 492eaefb90b9e60b608a1a4b2e3e68ce7c6c7c69 (patch) | |
tree | c431067ae16a1105afe7ee0ab10f9425b7bc6a5f /src/interfaces/ecpg/ecpglib/execute.c | |
parent | 3d4a2cea57582ec191a0e14b3c80ac8618e02331 (diff) | |
download | postgresql-492eaefb90b9e60b608a1a4b2e3e68ce7c6c7c69.tar.gz postgresql-492eaefb90b9e60b608a1a4b2e3e68ce7c6c7c69.zip |
Do not check nan values for infinity. Some system are not able to handle this.
By Zoltán Böszörményi
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/execute.c')
-rw-r--r-- | src/interfaces/ecpg/ecpglib/execute.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c index d0aef8a5c6a..f65ede58368 100644 --- a/src/interfaces/ecpg/ecpglib/execute.c +++ b/src/interfaces/ecpg/ecpglib/execute.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.93 2010/02/04 09:41:34 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.94 2010/02/16 18:41:23 meskes Exp $ */ /* * The aim is to get a simpler inteface to the database routines. @@ -468,15 +468,15 @@ ecpg_store_result(const PGresult *results, int act_field, static void sprintf_double_value(char *ptr, double value, const char *delim) { - if (isinf(value)) + if (isnan(value)) + sprintf(ptr, "%s%s", "NaN", delim); + else if (isinf(value)) { if (value < 0) sprintf(ptr, "%s%s", "-Infinity", delim); else sprintf(ptr, "%s%s", "Infinity", delim); } - else if (isnan(value)) - sprintf(ptr, "%s%s", "NaN", delim); else sprintf(ptr, "%.14g%s", value, delim); } @@ -484,15 +484,15 @@ sprintf_double_value(char *ptr, double value, const char *delim) static void sprintf_float_value(char *ptr, float value, const char *delim) { - if (isinf(value)) + if (isnan(value)) + sprintf(ptr, "%s%s", "NaN", delim); + else if (isinf(value)) { if (value < 0) sprintf(ptr, "%s%s", "-Infinity", delim); else sprintf(ptr, "%s%s", "Infinity", delim); } - else if (isnan(value)) - sprintf(ptr, "%s%s", "NaN", delim); else sprintf(ptr, "%.14g%s", value, delim); } |