v6-0003-Avoid-global-LC_CTYPE-dependency-in-like.c.patch
text/x-patch
Filename: v6-0003-Avoid-global-LC_CTYPE-dependency-in-like.c.patch
Type: text/x-patch
Part: 2
From a9f365b0ebd0c71ad2fec3bba8dbf7a21b502e3a Mon Sep 17 00:00:00 2001
From: Jeff Davis <jeff@j-davis.com>
Date: Sun, 26 Oct 2025 14:59:40 -0700
Subject: [PATCH v6 3/9] Avoid global LC_CTYPE dependency in like.c.
Call char_tolower() instead of pg_tolower().
---
src/backend/utils/adt/like.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c
index 37c1c86aee8..364c39cf4fb 100644
--- a/src/backend/utils/adt/like.c
+++ b/src/backend/utils/adt/like.c
@@ -96,7 +96,14 @@ SB_lower_char(unsigned char c, pg_locale_t locale)
if (locale->ctype_is_c)
return pg_ascii_tolower(c);
else if (locale->is_default)
- return pg_tolower(c);
+ {
+ if (c >= 'A' && c <= 'Z')
+ return c + ('a' - 'A');
+ else if (IS_HIGHBIT_SET(c))
+ return char_tolower(c, locale);
+ else
+ return c;
+ }
else
return char_tolower(c, locale);
}
--
2.43.0