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 {