Re: Support LIKE with nondeterministic collations

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Daniel Verite <daniel@manitou-mail.org>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-05-03T14:12:46Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Support LIKE with nondeterministic collations

On 03.05.24 15:20, Robert Haas wrote:
> On Fri, May 3, 2024 at 4:52 AM Peter Eisentraut <peter@eisentraut.org> wrote:
>> What the implementation does is, it walks through the pattern.  It sees
>> '_', so it steps over one character in the input string, which is '.'
>> here.  Then we have 'foo.' left to match in the input string.  Then it
>> takes from the pattern the next substring up to but not including either
>> a wildcard character or the end of the string, which is 'oo', and then
>> it checks if a prefix of the remaining input string can be found that is
>> "equal to" 'oo'.  So here it would try in turn
>>
>>       ''     = 'oo' collate ign_punct ?
>>       'f'    = 'oo' collate ign_punct ?
>>       'fo'   = 'oo' collate ign_punct ?
>>       'foo'  = 'oo' collate ign_punct ?
>>       'foo.' = 'oo' collate ign_punct ?
>>
>> and they all fail, so the match fails.
> 
> Interesting. Does that imply that these matches are slower than normal ones?

Yes, certainly, and there is also no indexing support (other than for 
exact matches).