Table aliases in delete statements?

From: Keith Parks <emkxp01(at)mtcc(dot)demon(dot)co(dot)uk>
To: hackers(at)postgresql(dot)org
Subject: Table aliases in delete statements?
Date: 1999-12-07 22:38:08
Message-ID: 199912072238.WAA08259@mtcc.demon.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi All,

Is there any reason for not allowing table aliases in
delete statements?

I was trying to delete duplicates from an ascend log
database when I hit the following "parse" error.

(Perhaps I shouldn't be using a correlated subquery!!)

Simplified example follows.....

emkxp01=> create table deltest ( sessionid int, respdate datetime );
CREATE
emkxp01=> insert into deltest values ( 1, now() );
INSERT 58395 1
emkxp01=> insert into deltest values ( 1, now() );
INSERT 58396 1
emkxp01=> insert into deltest values ( 2, now() );
INSERT 58397 1
emkxp01=> insert into deltest values ( 2, now() );
INSERT 58398 1
emkxp01=> select * from deltest s1 where s1.respdate not in ( select
min(s2.respdate) from deltest s2 where s1.sessionid = s2.sessionid);
sessionid | respdate
-----------+------------------------------
1 | Tue 07 Dec 22:32:08 1999 GMT
2 | Tue 07 Dec 22:32:19 1999 GMT
(2 rows)

emkxp01=> select * from deltest;
sessionid | respdate
-----------+------------------------------
1 | Tue 07 Dec 22:32:01 1999 GMT
1 | Tue 07 Dec 22:32:08 1999 GMT
2 | Tue 07 Dec 22:32:14 1999 GMT
2 | Tue 07 Dec 22:32:19 1999 GMT
(4 rows)

emkxp01=> delete from deltest s1 where s1.respdate not in ( select
min(s2.respdate) from deltest s2 where s1.sessionid = s2.sessionid);
ERROR: parser: parse error at or near "s1"
emkxp01=>

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 1999-12-07 23:04:51 Re: [HACKERS] Parallel regress tests (was Re: FOREIGN KEY and
Previous Message Peter Eisentraut 1999-12-07 21:56:51 Re: [HACKERS] Parallel regress tests (was Re: FOREIGN KEY and