aboutsummaryrefslogtreecommitdiff
path: root/contrib/intarray/_int_tool.c
diff options
context:
space:
mode:
authorNathan Bossart <nathan@postgresql.org>2024-02-16 14:05:36 -0600
committerNathan Bossart <nathan@postgresql.org>2024-02-16 14:05:36 -0600
commit3b42bdb47169c617cb79123c407a19d16458b49a (patch)
tree90b3448bf3d59ab3bdc5996f2bb43fc83bcfe458 /contrib/intarray/_int_tool.c
parent6b80394781c8de17fe7cae6996476088af3c319f (diff)
downloadpostgresql-3b42bdb47169c617cb79123c407a19d16458b49a.tar.gz
postgresql-3b42bdb47169c617cb79123c407a19d16458b49a.zip
Use new overflow-safe integer comparison functions.
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
Diffstat (limited to 'contrib/intarray/_int_tool.c')
-rw-r--r--contrib/intarray/_int_tool.c9
1 files changed, 3 insertions, 6 deletions
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);
}