From dcffc9c8e62682b8673da61a84b6baad6d27e5f5 Mon Sep 17 00:00:00 2001
From: John Naylor <john.naylor@postgresql.org>
Date: Thu, 21 Jul 2022 18:17:57 +0700
Subject: [PATCH v3 2/6] Remove null comparisons from sort comparators

To see if it makes any difference for ORDER BY queries.

XXX: not for commit
---
 src/include/utils/sortsupport.h | 85 ---------------------------------
 1 file changed, 85 deletions(-)

diff --git a/src/include/utils/sortsupport.h b/src/include/utils/sortsupport.h
index 8c36cf8d82..c9a3ae41be 100644
--- a/src/include/utils/sortsupport.h
+++ b/src/include/utils/sortsupport.h
@@ -203,23 +203,6 @@ ApplySortComparator(Datum datum1, bool isNull1,
 {
 	int			compare;
 
-	if (isNull1)
-	{
-		if (isNull2)
-			compare = 0;		/* NULL "=" NULL */
-		else if (ssup->ssup_nulls_first)
-			compare = -1;		/* NULL "<" NOT_NULL */
-		else
-			compare = 1;		/* NULL ">" NOT_NULL */
-	}
-	else if (isNull2)
-	{
-		if (ssup->ssup_nulls_first)
-			compare = 1;		/* NOT_NULL ">" NULL */
-		else
-			compare = -1;		/* NOT_NULL "<" NULL */
-	}
-	else
 	{
 		compare = ssup->comparator(datum1, datum2, ssup);
 		if (ssup->ssup_reverse)
@@ -236,23 +219,6 @@ ApplyUnsignedSortComparator(Datum datum1, bool isNull1,
 {
 	int			compare;
 
-	if (isNull1)
-	{
-		if (isNull2)
-			compare = 0;		/* NULL "=" NULL */
-		else if (ssup->ssup_nulls_first)
-			compare = -1;		/* NULL "<" NOT_NULL */
-		else
-			compare = 1;		/* NULL ">" NOT_NULL */
-	}
-	else if (isNull2)
-	{
-		if (ssup->ssup_nulls_first)
-			compare = 1;		/* NOT_NULL ">" NULL */
-		else
-			compare = -1;		/* NOT_NULL "<" NULL */
-	}
-	else
 	{
 		compare = datum1 < datum2 ? -1 : datum1 > datum2 ? 1 : 0;
 		if (ssup->ssup_reverse)
@@ -270,23 +236,6 @@ ApplySignedSortComparator(Datum datum1, bool isNull1,
 {
 	int			compare;
 
-	if (isNull1)
-	{
-		if (isNull2)
-			compare = 0;		/* NULL "=" NULL */
-		else if (ssup->ssup_nulls_first)
-			compare = -1;		/* NULL "<" NOT_NULL */
-		else
-			compare = 1;		/* NULL ">" NOT_NULL */
-	}
-	else if (isNull2)
-	{
-		if (ssup->ssup_nulls_first)
-			compare = 1;		/* NOT_NULL ">" NULL */
-		else
-			compare = -1;		/* NOT_NULL "<" NULL */
-	}
-	else
 	{
 		compare = DatumGetInt64(datum1) < DatumGetInt64(datum2) ? -1 :
 			DatumGetInt64(datum1) > DatumGetInt64(datum2) ? 1 : 0;
@@ -305,23 +254,6 @@ ApplyInt32SortComparator(Datum datum1, bool isNull1,
 {
 	int			compare;
 
-	if (isNull1)
-	{
-		if (isNull2)
-			compare = 0;		/* NULL "=" NULL */
-		else if (ssup->ssup_nulls_first)
-			compare = -1;		/* NULL "<" NOT_NULL */
-		else
-			compare = 1;		/* NULL ">" NOT_NULL */
-	}
-	else if (isNull2)
-	{
-		if (ssup->ssup_nulls_first)
-			compare = 1;		/* NOT_NULL ">" NULL */
-		else
-			compare = -1;		/* NOT_NULL "<" NULL */
-	}
-	else
 	{
 		compare = DatumGetInt32(datum1) < DatumGetInt32(datum2) ? -1 :
 			DatumGetInt32(datum1) > DatumGetInt32(datum2) ? 1 : 0;
@@ -344,23 +276,6 @@ ApplySortAbbrevFullComparator(Datum datum1, bool isNull1,
 {
 	int			compare;
 
-	if (isNull1)
-	{
-		if (isNull2)
-			compare = 0;		/* NULL "=" NULL */
-		else if (ssup->ssup_nulls_first)
-			compare = -1;		/* NULL "<" NOT_NULL */
-		else
-			compare = 1;		/* NULL ">" NOT_NULL */
-	}
-	else if (isNull2)
-	{
-		if (ssup->ssup_nulls_first)
-			compare = 1;		/* NOT_NULL ">" NULL */
-		else
-			compare = -1;		/* NOT_NULL "<" NULL */
-	}
-	else
 	{
 		compare = ssup->abbrev_full_comparator(datum1, datum2, ssup);
 		if (ssup->ssup_reverse)
-- 
2.36.1

