aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/float.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-01-03 19:34:23 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-01-03 19:34:23 +0000
commit812095d6043c3e5ae9ea49e6b89cf9aaae83a39d (patch)
treefb58783326dcbc78b8f542ccfe5546c7c0281ccc /src/backend/utils/adt/float.c
parent0d5eb8f9eac0ece650607682a754a38c788b1833 (diff)
downloadpostgresql-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.c7
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);