Re: BUG #8934: value != ANY (uuid[]) AND expr does not work in all cases

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: marcusoverheu(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #8934: value != ANY (uuid[]) AND expr does not work in all cases
Date: 2014-01-23 17:11:24
Message-ID: 20140123171124.GR10723@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

marcusoverheu(at)gmail(dot)com escribió:

> insert into uuidtest VALUES (1, 'ab15ea27-8768-4cbe-a1fb-02a2a949a34d'),
> (1, '1c9e9ce5-d4d8-4a14-9eaf-929f27e09ba2');
>
> then
> select * from uuidtest where auuid = ANY
> (ARRAY['1c9e9ce5-d4d8-4a14-9eaf-929f27e09ba2','ab15ea27-8768-4cbe-a1fb-02a2a949a34d']::uuid[])
> and aint = 1;
> return 2 result
> which would mean that if using not in
>
> select * from uuidtest where auuid != ANY
> (ARRAY['1c9e9ce5-d4d8-4a14-9eaf-929f27e09ba2','ab15ea27-8768-4cbe-a1fb-02a2a949a34d']::uuid[])
> and aint = 1;

Presumably you want auuid != ALL (array[ .. ]) here. In the first case,
each value is = to the value that it equals to, so both are returned.
In the second case, each value is != to the other value, so both are
returned too.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Sergei.Agalakov 2014-01-23 17:27:03 BUG #8939: Cast to range type fails due to whitespaces in the text string
Previous Message Devrim GÜNDÜZ 2014-01-23 16:12:54 Re: BUG #8869: ip4r93-1.05-3.rhel6 syntax error in ip4r.sql - LANGUAGE 'C' instead of LANGUAGE 'c'