|
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); |
|