diff --git a/src/include/utils/sortsupport.h b/src/include/utils/sortsupport.h
index ae8f4852a8..140a9f9ffc 100644
--- a/src/include/utils/sortsupport.h
+++ b/src/include/utils/sortsupport.h
@@ -262,6 +262,7 @@ ApplyUnsignedSortComparator(Datum datum1, bool isNull1,
 	return compare;
 }
 
+#if SIZEOF_DATUM >= 8
 static inline int
 ApplySignedSortComparator(Datum datum1, bool isNull1,
 						  Datum datum2, bool isNull2,
@@ -287,19 +288,15 @@ ApplySignedSortComparator(Datum datum1, bool isNull1,
 	}
 	else
 	{
-#if SIZEOF_DATUM == 8
-		compare = (int64) datum1 < (int64) datum2 ? -1 :
-			(int64) datum1 > (int64) datum2 ? 1 : 0;
-#else
-		compare = (int32) datum1 < (int32) datum2 ? -1 :
-			(int32) datum1 > (int32) datum2 ? 1 : 0;
-#endif
+		compare = DatumGetInt64(datum1) < DatumGetInt64(datum2) ? -1 :
+			DatumGetInt64(datum1) > DatumGetInt64(datum2) ? 1 : 0;
 		if (ssup->ssup_reverse)
 			INVERT_COMPARE_RESULT(compare);
 	}
 
 	return compare;
 }
+#endif
 
 static inline int
 ApplyInt32SortComparator(Datum datum1, bool isNull1,
@@ -326,8 +323,8 @@ ApplyInt32SortComparator(Datum datum1, bool isNull1,
 	}
 	else
 	{
-		compare = (int32) datum1 < (int32) datum2 ? -1 :
-			(int32) datum1 > (int32) datum2 ? 1 : 0;
+		compare = DatumGetInt32(datum1) < DatumGetInt32(datum2) ? -1 :
+			DatumGetInt32(datum1) > DatumGetInt32(datum2) ? 1 : 0;
 		if (ssup->ssup_reverse)
 			INVERT_COMPARE_RESULT(compare);
 	}
