v9-0002-Add-define-for-UNICODE_CASEMAP_BUFSZ.patch
text/x-patch
Filename: v9-0002-Add-define-for-UNICODE_CASEMAP_BUFSZ.patch
Type: text/x-patch
Part: 1
From 5538939cae6210a4ee702253b0287e44993b98b4 Mon Sep 17 00:00:00 2001 From: Jeff Davis <jeff@j-davis.com> Date: Wed, 19 Nov 2025 10:11:52 -0800 Subject: [PATCH v9 02/11] Add #define for UNICODE_CASEMAP_BUFSZ. Useful for mapping a single codepoint at a time into a statically-allocated buffer. --- src/include/utils/pg_locale.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/include/utils/pg_locale.h b/src/include/utils/pg_locale.h index 683e1a0eef8..49fd22bf8eb 100644 --- a/src/include/utils/pg_locale.h +++ b/src/include/utils/pg_locale.h @@ -26,6 +26,17 @@ /* use for libc locale names */ #define LOCALE_NAME_BUFLEN 128 +/* + * Maximum number of bytes needed to map a single codepoint. Useful for + * mapping and processing a single input codepoint at a time with a + * statically-allocated buffer. + * + * With full case mapping, an input codepoint may be mapped to as many as + * three output codepoints. See Unicode 5.18.2, "Change in Length". + */ +#define UNICODE_CASEMAP_LEN 3 +#define UNICODE_CASEMAP_BUFSZ (UNICODE_CASEMAP_LEN * sizeof(char32_t)) + /* GUC settings */ extern PGDLLIMPORT char *locale_messages; extern PGDLLIMPORT char *locale_monetary; -- 2.43.0