From 90df2e3d606d9c006f16d1cbc9066ab571dd3708 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 23 Jan 2018 10:55:40 -0500 Subject: [PATCH 2/3] Remove use of byte-masking macros in record_image_cmp These were introduced in 4cbb646334b3b998a29abef0d57608d42097e6c9, but after further analysis, they should not be necessary and probably weren't the part of that commit that fixed anything. --- src/backend/utils/adt/rowtypes.c | 65 ++-------------------------------------- 1 file changed, 3 insertions(+), 62 deletions(-) diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c index a5fabfcc9e..5f729342f8 100644 --- a/src/backend/utils/adt/rowtypes.c +++ b/src/backend/utils/adt/rowtypes.c @@ -1467,45 +1467,8 @@ record_image_cmp(FunctionCallInfo fcinfo) } else if (att1->attbyval) { - switch (att1->attlen) - { - case 1: - if (GET_1_BYTE(values1[i1]) != - GET_1_BYTE(values2[i2])) - { - cmpresult = (GET_1_BYTE(values1[i1]) < - GET_1_BYTE(values2[i2])) ? -1 : 1; - } - break; - case 2: - if (GET_2_BYTES(values1[i1]) != - GET_2_BYTES(values2[i2])) - { - cmpresult = (GET_2_BYTES(values1[i1]) < - GET_2_BYTES(values2[i2])) ? -1 : 1; - } - break; - case 4: - if (GET_4_BYTES(values1[i1]) != - GET_4_BYTES(values2[i2])) - { - cmpresult = (GET_4_BYTES(values1[i1]) < - GET_4_BYTES(values2[i2])) ? -1 : 1; - } - break; -#if SIZEOF_DATUM == 8 - case 8: - if (GET_8_BYTES(values1[i1]) != - GET_8_BYTES(values2[i2])) - { - cmpresult = (GET_8_BYTES(values1[i1]) < - GET_8_BYTES(values2[i2])) ? -1 : 1; - } - break; -#endif - default: - Assert(false); /* cannot happen */ - } + if (values1[i1] != values2[i2]) + cmpresult = (values1[i1] < values2[i2]) ? -1 : 1; } else { @@ -1739,29 +1702,7 @@ record_image_eq(PG_FUNCTION_ARGS) } else if (att1->attbyval) { - switch (att1->attlen) - { - case 1: - result = (GET_1_BYTE(values1[i1]) == - GET_1_BYTE(values2[i2])); - break; - case 2: - result = (GET_2_BYTES(values1[i1]) == - GET_2_BYTES(values2[i2])); - break; - case 4: - result = (GET_4_BYTES(values1[i1]) == - GET_4_BYTES(values2[i2])); - break; -#if SIZEOF_DATUM == 8 - case 8: - result = (GET_8_BYTES(values1[i1]) == - GET_8_BYTES(values2[i2])); - break; -#endif - default: - Assert(false); /* cannot happen */ - } + result = (values1[i1] == values2[i2]); } else { -- 2.16.1