diff options
author | Bruce Momjian <bruce@momjian.us> | 2007-01-06 20:21:29 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2007-01-06 20:21:29 +0000 |
commit | f0f4a6d781b695e3b0c3f426ababf68e65d7bf5b (patch) | |
tree | ba2d545ffe4782ae71d39bae1be58c1713dc48e6 /src/backend/utils/adt/float.c | |
parent | 282f7f2eaca717eec25641e7a3cc6af293d56322 (diff) | |
download | postgresql-f0f4a6d781b695e3b0c3f426ababf68e65d7bf5b.tar.gz postgresql-f0f4a6d781b695e3b0c3f426ababf68e65d7bf5b.zip |
Apply fix so pow() and exp() ERANGE is used only if result is not 0.
Diffstat (limited to 'src/backend/utils/adt/float.c')
-rw-r--r-- | src/backend/utils/adt/float.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c index 263a13a3148..44fe89296e8 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.145 2007/01/06 15:18:02 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.146 2007/01/06 20:21:29 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1459,7 +1459,7 @@ dpow(PG_FUNCTION_ARGS) else result = 1; } - else if (errno == ERANGE && !isinf(result)) + else if (errno == ERANGE && result != 0 && !isinf(result)) result = get_float8_infinity(); CHECKFLOATVAL(result, isinf(arg1) || isinf(arg2), arg1 == 0); @@ -1478,7 +1478,7 @@ dexp(PG_FUNCTION_ARGS) errno = 0; result = exp(arg1); - if (errno == ERANGE && !isinf(result)) + if (errno == ERANGE && result != 0 && !isinf(result)) result = get_float8_infinity(); CHECKFLOATVAL(result, isinf(arg1), false); |