aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/ecpglib/execute.c14
-rw-r--r--src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c4
-rw-r--r--src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc4
3 files changed, 11 insertions, 11 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);
}
diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c b/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c
index 6b15abe8f10..d8c654f1430 100644
--- a/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c
+++ b/src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c
@@ -104,10 +104,10 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
if (sqlca.sqlcode)
break;
- if (isinf(d))
- printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
if (isnan(d))
printf("%d NaN '%s'\n", id, val);
+ else if (isinf(d))
+ printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into nantest1 ( id , d ) values ( $1 + 3 , $2 )",
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),
diff --git a/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc b/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc
index 7aa99b00d12..a136867bbdc 100644
--- a/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc
+++ b/src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc
@@ -37,10 +37,10 @@ main(void)
exec sql fetch from cur into :id, :d, :val;
if (sqlca.sqlcode)
break;
- if (isinf(d))
- printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
if (isnan(d))
printf("%d NaN '%s'\n", id, val);
+ else if (isinf(d))
+ printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
exec sql insert into nantest1 (id, d) values (:id + 3, :d);
exec sql insert into nantest1 (id, d) values (:id + 6, :val);