aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/execute.c
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2010-02-16 18:41:23 +0000
committerMichael Meskes <meskes@postgresql.org>2010-02-16 18:41:23 +0000
commit492eaefb90b9e60b608a1a4b2e3e68ce7c6c7c69 (patch)
treec431067ae16a1105afe7ee0ab10f9425b7bc6a5f /src/interfaces/ecpg/ecpglib/execute.c
parent3d4a2cea57582ec191a0e14b3c80ac8618e02331 (diff)
downloadpostgresql-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.c14
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);
}