Re: BUG #9006: Incorrect update when using where with non-existent column in subselect

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: martin(dot)nzioki(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #9006: Incorrect update when using where with non-existent column in subselect
Date: 2014-01-28 02:13:43
Message-ID: 420.1390875223@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

martin(dot)nzioki(at)gmail(dot)com writes:
> create table _test1 (id int not null primary key, c2 int);
> insert into _test1 (id) select * from generate_series(1, 5);

> create table _tmp_test2 (id_fk int not null);
> insert into _tmp_test2 (id_fk) select id from _test1 limit 2;

> update _test1 set c2 = 7 where id in (select id from _tmp_test2);

This is a FAQ ... that statement is perfectly valid per SQL standard,
it just doesn't do what you expect, because the sub-select's "id" is
taken as an outer reference to _test1's id column.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message stefan.kirchev 2014-01-28 08:56:34 BUG #9007: List comparison
Previous Message Andres Freund 2014-01-28 00:12:21 Re: BUG #9003: Hard-coding to localhost in postmaster