From 3b42bdb47169c617cb79123c407a19d16458b49a Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Fri, 16 Feb 2024 14:05:36 -0600 Subject: Use new overflow-safe integer comparison functions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 6b80394781 introduced integer comparison functions designed to be as efficient as possible while avoiding overflow. This commit makes use of these functions in many of the in-tree qsort() comparators to help ensure transitivity. Many of these comparator functions should also see a small performance boost. Author: Mats Kindahl Reviewed-by: Andres Freund, Fabrízio de Royes Mello Discussion: https://postgr.es/m/CA%2B14426g2Wa9QuUpmakwPxXFWG_1FaY0AsApkvcTBy-YfS6uaw%40mail.gmail.com --- contrib/intarray/_int_tool.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'contrib/intarray/_int_tool.c') diff --git a/contrib/intarray/_int_tool.c b/contrib/intarray/_int_tool.c index 68f624e085c..c85280c8422 100644 --- a/contrib/intarray/_int_tool.c +++ b/contrib/intarray/_int_tool.c @@ -7,6 +7,7 @@ #include "_int.h" #include "catalog/pg_type.h" +#include "common/int.h" #include "lib/qunique.h" /* arguments are assumed sorted & unique-ified */ @@ -396,15 +397,11 @@ int_to_intset(int32 elem) int compASC(const void *a, const void *b) { - if (*(const int32 *) a == *(const int32 *) b) - return 0; - return (*(const int32 *) a > *(const int32 *) b) ? 1 : -1; + return pg_cmp_s32(*(const int32 *) a, *(const int32 *) b); } int compDESC(const void *a, const void *b) { - if (*(const int32 *) a == *(const int32 *) b) - return 0; - return (*(const int32 *) a < *(const int32 *) b) ? 1 : -1; + return pg_cmp_s32(*(const int32 *) b, *(const int32 *) a); } -- cgit v1.2.3