This patch forces postgres95 to assume any floating-point value is a
float8.  It removes the requirement that you cast all floating-point
constants to float8.

We can remove alot of casts in the regression test after we are sure
this works.

If I have missed anything, would someone let me know.  I have tested
inserts of floating-point values into float8 fields, and it worked well.
Casting the number to float4 showed the same precision loss as previous
uncast values showed.

Submitted by: Bruce Momjian <maillist@candle.pha.pa.us>
This commit is contained in:
Marc G. Fournier 1996-08-13 01:29:34 +00:00
parent 9b7eb28ea5
commit 59f29714aa
2 changed files with 7 additions and 7 deletions

View File

@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.5 1996/08/06 16:43:06 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.6 1996/08/13 01:29:33 scrappy Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@ -2112,7 +2112,7 @@ xlateSqlType(char *name)
return "int2";
else if (!strcasecmp(name, "float") ||
!strcasecmp(name, "real"))
return "float4";
return "float8";
else
return name;
}

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.2 1996/07/19 07:24:09 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.3 1996/08/13 01:29:34 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@ -594,13 +594,13 @@ make_const(Value *value)
case T_Float:
{
float32 dummy;
tp = type("float4");
float64 dummy;
tp = type("float8");
dummy = (float32)palloc(sizeof(float32data));
dummy = (float64)palloc(sizeof(float64data));
*dummy = floatVal(value);
val = Float32GetDatum(dummy);
val = Float64GetDatum(dummy);
}
break;