From: Kevin Grittner Date: Thu, 10 Oct 2013 16:23:31 +0000 (-0500) Subject: Fix bug in record_image_ops on big endian machines. X-Git-Tag: REL9_4_BETA1~1069 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=15e46fd1dd77d908d73c48d601694a6809d18976;p=postgresql Fix bug in record_image_ops on big endian machines. The buildfarm pointed out the problem. Fix based on suggestion by Robert Haas. --- diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c index 0bcbb5d664..7925ce2617 100644 --- a/src/backend/utils/adt/rowtypes.c +++ b/src/backend/utils/adt/rowtypes.c @@ -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 {