diff options
author | Nathan Bossart <nathan@postgresql.org> | 2024-02-16 14:05:36 -0600 |
---|---|---|
committer | Nathan Bossart <nathan@postgresql.org> | 2024-02-16 14:05:36 -0600 |
commit | 3b42bdb47169c617cb79123c407a19d16458b49a (patch) | |
tree | 90b3448bf3d59ab3bdc5996f2bb43fc83bcfe458 /src/bin/pg_upgrade/function.c | |
parent | 6b80394781c8de17fe7cae6996476088af3c319f (diff) |
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 'src/bin/pg_upgrade/function.c')
-rw-r--r-- | src/bin/pg_upgrade/function.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/bin/pg_upgrade/function.c b/src/bin/pg_upgrade/function.c index af998f74d37..d65153de819 100644 --- a/src/bin/pg_upgrade/function.c +++ b/src/bin/pg_upgrade/function.c @@ -11,6 +11,7 @@ #include "access/transam.h" #include "catalog/pg_language_d.h" +#include "common/int.h" #include "pg_upgrade.h" /* @@ -29,17 +30,16 @@ library_name_compare(const void *p1, const void *p2) { const char *str1 = ((const LibraryInfo *) p1)->name; const char *str2 = ((const LibraryInfo *) p2)->name; - int slen1 = strlen(str1); - int slen2 = strlen(str2); + size_t slen1 = strlen(str1); + size_t slen2 = strlen(str2); int cmp = strcmp(str1, str2); if (slen1 != slen2) - return slen1 - slen2; + return pg_cmp_size(slen1, slen2); if (cmp != 0) return cmp; - else - return ((const LibraryInfo *) p1)->dbnum - - ((const LibraryInfo *) p2)->dbnum; + return pg_cmp_s32(((const LibraryInfo *) p1)->dbnum, + ((const LibraryInfo *) p2)->dbnum); } |