aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/float.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/float.c')
-rw-r--r--src/backend/utils/adt/float.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index ac3fb2d149a..9ef2e80da76 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.90 2003/07/27 04:53:05 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.91 2003/07/30 19:48:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -109,6 +109,8 @@ int extra_float_digits = 0; /* Added to DBL_DIG or FLT_DIG */
static void CheckFloat4Val(double val);
static void CheckFloat8Val(double val);
+static int float4_cmp_internal(float4 a, float4 b);
+static int float8_cmp_internal(float8 a, float8 b);
/*
@@ -413,7 +415,10 @@ float4larger(PG_FUNCTION_ARGS)
float4 arg2 = PG_GETARG_FLOAT4(1);
float4 result;
- result = ((arg1 > arg2) ? arg1 : arg2);
+ if (float4_cmp_internal(arg1, arg2) > 0)
+ result = arg1;
+ else
+ result = arg2;
PG_RETURN_FLOAT4(result);
}
@@ -424,7 +429,10 @@ float4smaller(PG_FUNCTION_ARGS)
float4 arg2 = PG_GETARG_FLOAT4(1);
float4 result;
- result = ((arg1 < arg2) ? arg1 : arg2);
+ if (float4_cmp_internal(arg1, arg2) < 0)
+ result = arg1;
+ else
+ result = arg2;
PG_RETURN_FLOAT4(result);
}
@@ -480,8 +488,10 @@ float8larger(PG_FUNCTION_ARGS)
float8 arg2 = PG_GETARG_FLOAT8(1);
float8 result;
- result = ((arg1 > arg2) ? arg1 : arg2);
-
+ if (float8_cmp_internal(arg1, arg2) > 0)
+ result = arg1;
+ else
+ result = arg2;
PG_RETURN_FLOAT8(result);
}
@@ -492,8 +502,10 @@ float8smaller(PG_FUNCTION_ARGS)
float8 arg2 = PG_GETARG_FLOAT8(1);
float8 result;
- result = ((arg1 < arg2) ? arg1 : arg2);
-
+ if (float8_cmp_internal(arg1, arg2) < 0)
+ result = arg1;
+ else
+ result = arg2;
PG_RETURN_FLOAT8(result);
}