aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2018-01-23 10:55:40 -0500
committerPeter Eisentraut <peter_e@gmx.net>2018-01-25 09:41:19 -0500
commit0b5e33f667a2042d7022da8bef31a8be5937aad1 (patch)
tree10a9c9f7e31f7fa67623cd0add9c2ddbeb590e26
parent4a3fdbdf766d80b21271e32da865801ab005d786 (diff)
downloadpostgresql-0b5e33f667a2042d7022da8bef31a8be5937aad1.tar.gz
postgresql-0b5e33f667a2042d7022da8bef31a8be5937aad1.zip
Remove use of byte-masking macros in record_image_cmp
These were introduced in 4cbb646334b3b998a29abef0d57608d42097e6c9, but after further analysis and testing, they should not be necessary and probably weren't the part of that commit that fixed anything. Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
-rw-r--r--src/backend/utils/adt/rowtypes.c65
1 files changed, 3 insertions, 62 deletions
diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c
index a5fabfcc9e2..5f729342f8d 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
{