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

From Bauyrzhan Sakhariyev
Subject Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Date
Msg-id CAKpL73tpx-+ep1Vt5jaGA5bb28DQwxoLoyn9zLRGpB1cZXgCAA@mail.gmail.com
Whole thread Raw
In response to Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
Oh, you right, sorry for the noise and thanks for the clarification!

On Thu, Nov 30, 2023 at 2:06 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
PG Bug reporting form <noreply@postgresql.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

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Next
From: Şeyma Alkan
Date:
Subject: Re: BUG #18198: Constantly getting errors