|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.143 2007/01/0602:28:38 tgl Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.144 2007/01/0604:14:55 momjian Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -1459,10 +1459,9 @@ dpow(PG_FUNCTION_ARGS)
|
1459 | 1459 | else
|
1460 | 1460 | result=1;
|
1461 | 1461 | }
|
1462 |
| -elseif (errno==ERANGE) |
1463 |
| -{ |
1464 |
| -result= (arg1 >=0) ?get_float8_infinity() :-get_float8_infinity(); |
1465 |
| -} |
| 1462 | +/* Some platoforms, e.g. HPPA, return ERANGE, but HUGE_VAL, not Inf */ |
| 1463 | +elseif (errno==ERANGE&& !isinf(result)) |
| 1464 | +result=get_float8_infinity(); |
1466 | 1465 |
|
1467 | 1466 | CHECKFLOATVAL(result,isinf(arg1)||isinf(arg2),arg1==0);
|
1468 | 1467 | PG_RETURN_FLOAT8(result);
|
|