|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.137 2007/01/0314:35:24 momjian Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.138 2007/01/0319:34:23 tgl Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -1445,7 +1445,7 @@ dpow(PG_FUNCTION_ARGS)
|
1445 | 1445 | */
|
1446 | 1446 | errno=0;
|
1447 | 1447 | result=pow(arg1,arg2);
|
1448 |
| -if (errno==ERANGE&&isnan(result)) |
| 1448 | +if (errno==ERANGE||isnan(result)) |
1449 | 1449 | {
|
1450 | 1450 | if ((fabs(arg1)>1&&arg2 >=0)|| (fabs(arg1)<1&&arg2<0))
|
1451 | 1451 | result= (arg1 >=0) ?get_float8_infinity() :-get_float8_infinity();
|
@@ -1474,14 +1474,13 @@ dexp(PG_FUNCTION_ARGS)
|
1474 | 1474 | */
|
1475 | 1475 | errno=0;
|
1476 | 1476 | result=exp(arg1);
|
1477 |
| -if (errno==ERANGE&&isnan(result)) |
| 1477 | +if (errno==ERANGE||isnan(result)) |
1478 | 1478 | {
|
1479 | 1479 | if (arg1 >=0)
|
1480 | 1480 | result=get_float8_infinity();
|
1481 | 1481 | else
|
1482 | 1482 | result=0;
|
1483 | 1483 | }
|
1484 |
| - |
1485 | 1484 |
|
1486 | 1485 | CHECKFLOATVAL(result,isinf(arg1), false);
|
1487 | 1486 | PG_RETURN_FLOAT8(result);
|
|