aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>1999-05-04 15:50:24 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>1999-05-04 15:50:24 +0000
commit84e832a8027354c6c583e837a80fba64bf83298d (patch)
tree79f28c60e85cbeede786295c90e6f2dcf0a8be11
parent54067db6426a9c515d01e6a6c228bf9f8e56199a (diff)
downloadpostgresql-84e832a8027354c6c583e837a80fba64bf83298d.tar.gz
postgresql-84e832a8027354c6c583e837a80fba64bf83298d.zip
Use sprintf() to convert float8 to a string during conversion to numeric.
Original code used float8out(), but the resulting exponential notation was not handled (e.g. '3E9' was decoded as '3').
-rw-r--r--src/backend/utils/adt/numeric.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index 9dea44a25c5..e00e2186847 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -5,7 +5,7 @@
*
* 1998 Jan Wieck
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.11 1999/03/14 16:49:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.12 1999/05/04 15:50:24 thomas Exp $
*
* ----------
*/
@@ -1693,7 +1693,7 @@ float8_numeric(float64 val)
{
Numeric res;
NumericVar result;
- char *tmp;
+ char buf[512];
if (val == NULL)
return NULL;
@@ -1703,12 +1703,11 @@ float8_numeric(float64 val)
init_var(&result);
- tmp = float8out(val);
- set_var_from_str(tmp, &result);
+ sprintf(buf, "%f", *val);
+ set_var_from_str(buf, &result);
res = make_result(&result);
free_var(&result);
- pfree(tmp);
return res;
}