Fix missed case for builtin collation provider.
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
This commit is contained in:
parent
e839c8ecc9
commit
98c5b191e7
@ -1500,13 +1500,11 @@ 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->provider == COLLPROVIDER_ICU)
|
||||
else if (locale->provider != COLLPROVIDER_LIBC)
|
||||
return IS_HIGHBIT_SET(c) ||
|
||||
(c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
|
||||
else if (locale->provider == COLLPROVIDER_LIBC)
|
||||
return isalpha_l((unsigned char) c, locale->info.lt);
|
||||
else
|
||||
return isalpha((unsigned char) c);
|
||||
return isalpha_l((unsigned char) c, locale->info.lt);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user