0002-Remove-use-of-byte-masking-macros-in-record_image_cm.patch
text/plain
Filename: 0002-Remove-use-of-byte-masking-macros-in-record_image_cm.patch
Type: text/plain
Part: 1
Patch
Format: format-patch
Series: patch 0002
Subject: Remove use of byte-masking macros in record_image_cmp
| File | + | − |
|---|---|---|
| src/backend/utils/adt/rowtypes.c | 3 | 62 |
From 90df2e3d606d9c006f16d1cbc9066ab571dd3708 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
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