Paranoia about unordered comparisons in IEEE float math. If we are
authorTom Lane
Sat, 2 Jun 2001 17:12:12 +0000 (17:12 +0000)
committerTom Lane
Sat, 2 Jun 2001 17:12:12 +0000 (17:12 +0000)
given values that compare as unordered, make sure we reply that they
are equal, which is better than giving an arbitrary answer --- at least
it doesn't depend on which one is passed as which arg.

src/backend/utils/adt/float.c

index 06405d0cee152e4790585c03ef948a75e1bde8b4..42239cced021066975358312035c975e93205a9d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.71 2001/05/03 19:00:36 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.72 2001/06/02 17:12:12 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -566,10 +566,10 @@ float4_cmp_internal(float4 a, float4 b)
    {
        if (a > b)
            return 1;
-       else if (a == b)
-           return 0;
-       else
+       else if (a < b)
            return -1;
+       else
+           return 0;
    }
 }
 
@@ -662,10 +662,10 @@ float8_cmp_internal(float8 a, float8 b)
    {
        if (a > b)
            return 1;
-       else if (a == b)
-           return 0;
-       else
+       else if (a < b)
            return -1;
+       else
+           return 0;
    }
 }