]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix missed case for builtin collation provider.
authorJeff Davis <jdavis@postgresql.org>
Fri, 11 Oct 2024 23:58:22 +0000 (16:58 -0700)
committerJeff Davis <jdavis@postgresql.org>
Fri, 11 Oct 2024 23:59:10 +0000 (16:59 -0700)
A missed check for the builtin collation provider could result in
falling through to call isalpha().

This does not appear to have practical consequences because it only
happens for characters in the ASCII range. Regardless, the builtin
provider should not be calling libc functions, so backpatch.

Discussion: https://postgr.es/m/1bd5a0a5192f82c22ee7527e825b18ab0028b2c7.camel@j-davis.com
Backpatch-through: 17

src/backend/utils/adt/like_support.c

index 2635050861f9735c47eee48a9321daa958ffdc53..6cd21ba8fede457f68369b83099349f0e5a433df 100644 (file)
@@ -1505,7 +1505,7 @@ pattern_char_isalpha(char c, bool is_multibyte,
                return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
        else if (is_multibyte && IS_HIGHBIT_SET(c))
                return true;
-       else if (locale && locale->provider == COLLPROVIDER_ICU)
+       else if (locale && locale->provider != COLLPROVIDER_LIBC)
                return IS_HIGHBIT_SET(c) ||
                        (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
        else if (locale && locale->provider == COLLPROVIDER_LIBC)