diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2007-01-03 19:34:23 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2007-01-03 19:34:23 +0000 |
commit | 812095d6043c3e5ae9ea49e6b89cf9aaae83a39d (patch) | |
tree | fb58783326dcbc78b8f542ccfe5546c7c0281ccc /src/backend/utils/adt/float.c | |
parent | 0d5eb8f9eac0ece650607682a754a38c788b1833 (diff) | |
download | postgresql-812095d6043c3e5ae9ea49e6b89cf9aaae83a39d.tar.gz postgresql-812095d6043c3e5ae9ea49e6b89cf9aaae83a39d.zip |
Fix erroneous error tests in pow/exp.
Diffstat (limited to 'src/backend/utils/adt/float.c')
-rw-r--r-- | src/backend/utils/adt/float.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c index d4e551b5edb..441f766f0ba 100644 --- a/src/backend/utils/adt/float.c +++ b/src/backend/utils/adt/float.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.137 2007/01/03 14:35:24 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.138 2007/01/03 19:34:23 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1445,7 +1445,7 @@ dpow(PG_FUNCTION_ARGS) */ errno = 0; result = pow(arg1, arg2); - if (errno == ERANGE && isnan(result)) + if (errno == ERANGE || isnan(result)) { if ((fabs(arg1) > 1 && arg2 >= 0) || (fabs(arg1) < 1 && arg2 < 0)) result = (arg1 >= 0) ? get_float8_infinity() : -get_float8_infinity(); @@ -1474,14 +1474,13 @@ dexp(PG_FUNCTION_ARGS) */ errno = 0; result = exp(arg1); - if (errno == ERANGE && isnan(result)) + if (errno == ERANGE || isnan(result)) { if (arg1 >= 0) result = get_float8_infinity(); else result = 0; } - CHECKFLOATVAL(result, isinf(arg1), false); PG_RETURN_FLOAT8(result); |