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

From Tom Lane
Subject Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Date
Msg-id 461815.1701349582@sss.pgh.pa.us
Whole thread Raw
In response to BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''  (Bauyrzhan Sakhariyev <baurzhansahariev@gmail.com>)
List pgsql-bugs
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: Orlov Aleksej
Date:
Subject: RE: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Next
From: Bauyrzhan Sakhariyev
Date:
Subject: Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''