Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: baurzhansahariev(at)gmail(dot)com
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Date: 2023-11-30 13:06:22
Message-ID: 461815.1701349582@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> select 'TextToMatch' like any (array[E'Te\%tch', E'nomatch']); -- true,
> correct
> select 'TextToMatch' NOT like any (array[E'Te\%tch', E'nomatch']); -- true
> but must be false because it's a negated version of the expression above

No, it is not. "NOT LIKE" is the operator to apply in this context,
so the second expression returns true if the test string is NOT LIKE
either of the array elements. You could write

NOT ('TextToMatch' like any (array[E'Te\%tch', E'nomatch']))

to get the behavior you are after. Or write NOT LIKE ALL,
as Orlov suggests.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bauyrzhan Sakhariyev 2023-11-30 13:20:21 Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Previous Message Orlov Aleksej 2023-11-30 12:50:03 RE: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''