diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c index 900d62d2d4..628aa6bb62 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.3 1999/01/01 04:17:13 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.4 1999/01/03 02:40:12 momjian Exp $ * * ---------- */ @@ -1722,11 +1722,13 @@ numeric_float8(Numeric num) if (NUMERIC_IS_NAN(num)) { + float64 dummy = 1; + result = (float64)palloc(sizeof(float64data)); #ifdef NAN *result = NAN; #else - *result = num; + *result = (dummy-dummy)/(dummy-dummy); /* generate NAN */ #endif return result; } @@ -1776,11 +1778,13 @@ numeric_float4(Numeric num) if (NUMERIC_IS_NAN(num)) { + float32 dummy = 1; + result = (float32)palloc(sizeof(float32data)); #ifdef NAN *result = NAN; #else - *result = num; + *result = (dummy-dummy)/(dummy-dummy); /* generate NAN */ #endif return result; }