Use correct datum macros in more tuplesort specialization functions.
authorJohn Naylor
Thu, 12 May 2022 02:18:21 +0000 (09:18 +0700)
committerJohn Naylor
Thu, 12 May 2022 02:20:32 +0000 (09:20 +0700)
Also clarify that ApplySignedSortComparator() is not built on 32-bit machines.

Folow-up to c90c16591

Reviewed-by: David Rowley
Discussion: https://www.postgresql.org/message-id/CAFBsxsFmt4_JUP8XgSJqwaAS9a9s8K8_PvMu%3Dj%3DDfwU%3D8QjNPw%40mail.gmail.com

src/include/utils/sortsupport.h

index ae8f4852a8bdfb988a4f1ca39e3a2b3243537b7b..140a9f9ffc4062ac3e75850f4f7b68e0706f6221 100644 (file)
@@ -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);
    }