From 477cf8ec1ae9ef333988c0dcd48a20d00eacd93b Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 1 Apr 2026 23:24:33 +1300 Subject: [PATCH 3/3] Remove pg_mblen() and related functions. pg_mblen() was unsafe and declared deprecated in all release branches, and can now removed in master. The t_is*() functions were less unsafe, but needed to know which pg_mblen_XXX() replacement to call so they also gained parallel replacements. Reviewed-by: Discussion: --- src/backend/tsearch/ts_locale.c | 12 ------------ src/backend/utils/mb/mbutils.c | 10 ---------- src/include/mb/pg_wchar.h | 3 --- src/include/tsearch/ts_locale.h | 9 +-------- 4 files changed, 1 insertion(+), 33 deletions(-) diff --git a/src/backend/tsearch/ts_locale.c b/src/backend/tsearch/ts_locale.c index df02ffb12fd..12ef3d11b32 100644 --- a/src/backend/tsearch/ts_locale.c +++ b/src/backend/tsearch/ts_locale.c @@ -41,18 +41,6 @@ int \ t_is##character_class##_cstr(const char *ptr) \ { \ return t_is##character_class##_with_len(ptr, pg_mblen_cstr(ptr)); \ -} \ -/* ptr shall point to a string with pre-validated encoding */ \ -int \ -t_is##character_class##_unbounded(const char *ptr) \ -{ \ - return t_is##character_class##_with_len(ptr, pg_mblen_unbounded(ptr)); \ -} \ -/* historical name for _unbounded */ \ -int \ -t_is##character_class(const char *ptr) \ -{ \ - return t_is##character_class##_unbounded(ptr); \ } GENERATE_T_ISCLASS_DEF(alnum) diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index 78f4d5e202c..08d80f2c36f 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -1143,16 +1143,6 @@ pg_mblen_unbounded(const char *mbstr) return length; } -/* - * Historical name for pg_mblen_unbounded(). Should not be used and will be - * removed in a later version. - */ -int -pg_mblen(const char *mbstr) -{ - return pg_mblen_unbounded(mbstr); -} - /* returns the display length of a multibyte character */ int pg_dsplen(const char *mbstr) diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index a3326e365a7..e42cf562635 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -700,9 +700,6 @@ extern int pg_mblen_range(const char *mbstr, const char *end); extern int pg_mblen_with_len(const char *mbstr, int limit); extern int pg_mblen_unbounded(const char *mbstr); -pg_attribute_deprecated("use pg_mblen_{cstr,range,with_len,unbounded} instead") -extern int pg_mblen(const char *mbstr); - extern int pg_dsplen(const char *mbstr); extern int pg_mbstrlen(const char *mbstr); extern int pg_mbstrlen_with_len(const char *mbstr, int limit); diff --git a/src/include/tsearch/ts_locale.h b/src/include/tsearch/ts_locale.h index 90e533eea31..b6a2d29ee3f 100644 --- a/src/include/tsearch/ts_locale.h +++ b/src/include/tsearch/ts_locale.h @@ -52,16 +52,9 @@ ts_copychar_cstr(void *dest, const void *src) return ts_copychar_with_len(dest, src, pg_mblen_cstr((const char *) src)); } -/* Historical macro for the above. */ -#define COPYCHAR ts_copychar_cstr - #define GENERATE_T_ISCLASS_DECL(character_class) \ extern int t_is##character_class##_with_len(const char *ptr, int len); \ -extern int t_is##character_class##_cstr(const char *ptr); \ -extern int t_is##character_class##_unbounded(const char *ptr); \ -\ -pg_attribute_deprecated("use t_isXXX_{cstr,with_len,unbounded} instead") \ -extern int t_is##character_class(const char *ptr); +extern int t_is##character_class##_cstr(const char *ptr); GENERATE_T_ISCLASS_DECL(alnum); GENERATE_T_ISCLASS_DECL(alpha); -- 2.53.0