diff options
author | Jeff Davis <jdavis@postgresql.org> | 2025-07-01 07:42:39 -0700 |
---|---|---|
committer | Jeff Davis <jdavis@postgresql.org> | 2025-07-01 07:44:47 -0700 |
commit | 5a38104b364234615c780656a8b2424f96ed9efa (patch) | |
tree | 3bdd0dc7532db1cfa646d5397b2bf095ef3d9e98 /src/backend/utils/adt/like_support.c | |
parent | d81dcc8d6243054e3bde40c6fb2b2a0be4b19da6 (diff) | |
download | postgresql-5a38104b364234615c780656a8b2424f96ed9efa.tar.gz postgresql-5a38104b364234615c780656a8b2424f96ed9efa.zip |
Control ctype behavior internally with a method table.
Previously, pattern matching and case mapping behavior branched based
on the provider. Refactor to use a method table, which is less
error-prone.
This is also a step toward multiple provider versions, which we may
want to support in the future.
Reviewed-by: Andreas Karlsson <andreas@proxel.se>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/2830211e1b6e6a2e26d845780b03e125281ea17b.camel%40j-davis.com
Diffstat (limited to 'src/backend/utils/adt/like_support.c')
-rw-r--r-- | src/backend/utils/adt/like_support.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/backend/utils/adt/like_support.c b/src/backend/utils/adt/like_support.c index 8fdc677371f..999f23f86d5 100644 --- a/src/backend/utils/adt/like_support.c +++ b/src/backend/utils/adt/like_support.c @@ -1495,13 +1495,8 @@ pattern_char_isalpha(char c, bool is_multibyte, { if (locale->ctype_is_c) return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'); - else if (is_multibyte && IS_HIGHBIT_SET(c)) - return true; - else if (locale->provider != COLLPROVIDER_LIBC) - return IS_HIGHBIT_SET(c) || - (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'); else - return isalpha_l((unsigned char) c, locale->info.lt); + return char_is_cased(c, locale); } |