From: | "Fred Wei" <weif(at)niwa(dot)co(dot)nz> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #5233: delete wrong doing with subquery where condition |
Date: | 2009-12-04 01:21:34 |
Message-ID: | 200912040121.nB41LYtr017590@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 5233
Logged by: Fred Wei
Email address: weif(at)niwa(dot)co(dot)nz
PostgreSQL version: 8.1.11
Operating system: SUSE Linux Enterprise Server 10 SP2 (x86_64)
Description: delete wrong doing with subquery where condition
Details:
the following steps show a scenario where delete command removes all records
which are not supposed to do with a subquery condition:
cod_old=# create table tmp(k int);
CREATE TABLE
cod_old=# insert into tmp values(1);
INSERT 0 1
cod_old=# create table tmp2(k2 int);
CREATE TABLE
cod_old=# insert into tmp2 values(2);
INSERT 0 1
cod_old=# select count(*) from tmp;
count
-------
1
(1 row)
cod_old=# delete from tmp where k in (select k from tmp2);
DELETE 1
--this is wrong, because k does not exist in tmp2!
cod_old=# select count(*) from tmp;
count
-------
0
(1 row)
cod_old=# insert into tmp values(1);
INSERT 0 1
cod_old=# delete from tmp where k in (select tmp2.k from tmp2);
ERROR: column t.k does not exist
--the last line should be the correct behaviour.
Regards.
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2009-12-04 02:01:44 | Re: BUG #5230: Limit operator slows down |
Previous Message | Tom Lane | 2009-12-04 00:02:31 | Re: BUG #5232: plpythonu s=s.op() raises an exception |