Ok, this is a bug.
I'll post a patch as soon as possible.
Adam Witney wrote:
> Hi,
>
> I am using intarray in contrib, and have seen some strange behaviour with
> one of the operations. Anyone know whats going on here?
>
> cabbage=# create table test (id int, writers int[]);
> CREATE TABLE
> cabbage=# insert into test values(1, '{}');
> INSERT 1545023 1
> cabbage=# select * from test;
> id | writers
> ----+---------
> 1 | {}
> (1 row)
>
> cabbage=# update test set writers = (select writers - '{1}'::int[]);
> UPDATE 1
> cabbage=# select * from test;
> id | writers
> ----+---------
> 1 | {}
> (1 row)
>
> cabbage=# update test set writers = (select writers - '{1}'::int[]);
> UPDATE 1
> cabbage=# select * from test;
> id | writers
> ----+-----------
> 1 | {3044207}
> (1 row)
>
> Thanks for any help
>
> Adam
>
>
--
Teodor Sigaev E-mail: teodor@sigaev.ru