]> granicus.if.org Git - postgresql/commitdiff
Fix bug in record_image_ops on big endian machines.
authorKevin Grittner <kgrittn@postgresql.org>
Thu, 10 Oct 2013 16:23:31 +0000 (11:23 -0500)
committerKevin Grittner <kgrittn@postgresql.org>
Thu, 10 Oct 2013 16:25:30 +0000 (11:25 -0500)
The buildfarm pointed out the problem.

Fix based on suggestion by Robert Haas.

src/backend/utils/adt/rowtypes.c

index 0bcbb5d66485d6ce30bb1b94f48d9f4ecd0eccba..7925ce261707fd3242e4e48919ce89039b1436a7 100644 (file)
@@ -1464,9 +1464,8 @@ record_image_cmp(PG_FUNCTION_ARGS)
                        }
                        else if (tupdesc1->attrs[i1]->attbyval)
                        {
-                               cmpresult = memcmp(&(values1[i1]),
-                                                                  &(values2[i2]),
-                                                                  tupdesc1->attrs[i1]->attlen);
+                               if (values1[i1] != values2[i2])
+                                       cmpresult = (values1[i1] < values2[i2]) ? -1 : 1;
                        }
                        else
                        {
@@ -1695,9 +1694,7 @@ record_image_eq(PG_FUNCTION_ARGS)
                        }
                        else if (tupdesc1->attrs[i1]->attbyval)
                        {
-                               result = (memcmp(&(values1[i1]),
-                                                                &(values2[i2]),
-                                                                tupdesc1->attrs[i1]->attlen) == 0);
+                               result = (values1[i1] == values2[i2]);
                        }
                        else
                        {