0005-XXX-work-around-regc_pg_locale.c-s-probing-logic.txt

text/plain

Filename: 0005-XXX-work-around-regc_pg_locale.c-s-probing-logic.txt
Type: text/plain
Part: 4
Message: Re: C11: should we use char32_t for unicode code points?
From 50dc5a57bcd31be893071da62c4ba6b0537695cc Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Thu, 30 Oct 2025 00:52:51 +1300
Subject: [PATCH 5/8] XXX work around regc_pg_locale.c's probing logic

---
 src/backend/regex/regc_pg_locale.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/backend/regex/regc_pg_locale.c b/src/backend/regex/regc_pg_locale.c
index e0c892db713..fdc3fac0bbe 100644
--- a/src/backend/regex/regc_pg_locale.c
+++ b/src/backend/regex/regc_pg_locale.c
@@ -352,7 +352,15 @@ regc_ctype_get_cache(regc_wc_probefunc probefunc, int cclasscode)
 			pg_regex_locale->ctype->max_chr <= MAX_SIMPLE_CHR)
 		{
 			max_chr = pg_regex_locale->ctype->max_chr;
-			pcc->cv.cclasscode = -1;
+
+			/*
+			 * XXX TODO: don't turn off locales just because pg_locale_libc.c
+			 * told us it's not cool to probe arbitrary pg_wchar values over
+			 * 127!  Without this, re-encoding fails at pg_wchar 0x80, which
+			 * can't be converted back to mb (the EUC pg_wchar encoding has
+			 * holes in it)
+			 */
+			//pcc->cv.cclasscode = -1;
 		}
 		else
 			max_chr = (pg_wchar) MAX_SIMPLE_CHR;
-- 
2.50.1 (Apple Git-155)