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
Message: Re: [HACKERS] taking stdbool.h into use

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