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
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)