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
pull/205/head
Jeff Davis 1 year ago
parent 912d15cba5
commit ff33df26c2
  1. 2
      src/backend/utils/adt/like_support.c

@ -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)

Loading…
Cancel
Save