Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit492eaef

Browse files
author
Michael Meskes
committed
Do not check nan values for infinity. Some system are not able to handle this.
By Zoltán Böszörményi
1 parent3d4a2ce commit492eaef

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

‎src/interfaces/ecpg/ecpglib/execute.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.93 2010/02/04 09:41:34 meskes Exp $ */
1+
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.94 2010/02/16 18:41:23 meskes Exp $ */
22

33
/*
44
* The aim is to get a simpler inteface to the database routines.
@@ -468,31 +468,31 @@ ecpg_store_result(const PGresult *results, int act_field,
468468
staticvoid
469469
sprintf_double_value(char*ptr,doublevalue,constchar*delim)
470470
{
471-
if (isinf(value))
471+
if (isnan(value))
472+
sprintf(ptr,"%s%s","NaN",delim);
473+
elseif (isinf(value))
472474
{
473475
if (value<0)
474476
sprintf(ptr,"%s%s","-Infinity",delim);
475477
else
476478
sprintf(ptr,"%s%s","Infinity",delim);
477479
}
478-
elseif (isnan(value))
479-
sprintf(ptr,"%s%s","NaN",delim);
480480
else
481481
sprintf(ptr,"%.14g%s",value,delim);
482482
}
483483

484484
staticvoid
485485
sprintf_float_value(char*ptr,floatvalue,constchar*delim)
486486
{
487-
if (isinf(value))
487+
if (isnan(value))
488+
sprintf(ptr,"%s%s","NaN",delim);
489+
elseif (isinf(value))
488490
{
489491
if (value<0)
490492
sprintf(ptr,"%s%s","-Infinity",delim);
491493
else
492494
sprintf(ptr,"%s%s","Infinity",delim);
493495
}
494-
elseif (isnan(value))
495-
sprintf(ptr,"%s%s","NaN",delim);
496496
else
497497
sprintf(ptr,"%.14g%s",value,delim);
498498
}

‎src/interfaces/ecpg/test/expected/pgtypeslib-nan_test.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ if (sqlca.sqlcode < 0) sqlprint ( );}
104104

105105
if (sqlca.sqlcode)
106106
break;
107-
if (isinf(d))
108-
printf("%d %sInf '%s'\n",id, (d<0 ?"-" :"+"),val);
109107
if (isnan(d))
110108
printf("%d NaN '%s'\n",id,val);
109+
elseif (isinf(d))
110+
printf("%d %sInf '%s'\n",id, (d<0 ?"-" :"+"),val);
111111

112112
{ECPGdo(__LINE__,0,1,NULL,0,ECPGst_normal,"insert into nantest1 ( id , d ) values ( $1 + 3 , $2 )",
113113
ECPGt_int,&(id),(long)1,(long)1,sizeof(int),

‎src/interfaces/ecpg/test/pgtypeslib/nan_test.pgc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ main(void)
3737
exec sql fetch from cur into :id, :d, :val;
3838
if (sqlca.sqlcode)
3939
break;
40-
if (isinf(d))
41-
printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
4240
if (isnan(d))
4341
printf("%d NaN '%s'\n", id, val);
42+
else if (isinf(d))
43+
printf("%d %sInf '%s'\n", id, (d < 0 ? "-" : "+"), val);
4444

4545
exec sql insert into nantest1 (id, d) values (:id + 3, :d);
4646
exec sql insert into nantest1 (id, d) values (:id + 6, :val);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp