Re: [SQL] DELETE using an outer join

2012-07-20 Thread Thomas Kellerer
Tom Lane, 19.07.2012 16:52: If you're using a reasonably recent version of PG, replacing the NOT IN by a NOT EXISTS test should also help. Thanks. I wasn't aware of that (and the NOT EXISTS does indeed produce the same plan as the OUTER JOIN solution) Now I was wondering if a DELETE

Re: [SQL] DELETE using an outer join

2012-07-20 Thread Sergey Konoplev
On Thu, Jul 19, 2012 at 6:52 PM, Tom Lane t...@sss.pgh.pa.us wrote: Now I was wondering if a DELETE statement could be rewritten with the same strategy: Not at the moment. There have been discussions of allowing the same table name to be respecified in USING, but there are complications.

Re: [SQL] DELETE using an outer join

2012-07-20 Thread Thomas Kellerer
Sergey Konoplev, 20.07.2012 10:21: On Thu, Jul 19, 2012 at 6:52 PM, Tom Lane t...@sss.pgh.pa.us wrote: Now I was wondering if a DELETE statement could be rewritten with the same strategy: Not at the moment. There have been discussions of allowing the same table name to be respecified in

Re: [SQL] DELETE using an outer join

2012-07-20 Thread Sergey Konoplev
On Fri, Jul 20, 2012 at 2:27 PM, Thomas Kellerer spam_ea...@gmx.net wrote: Now I was wondering if a DELETE statement could be rewritten with the same strategy: Not at the moment. There have been discussions of allowing the same table name to be respecified in USING, but there are

Re: [SQL] DELETE using an outer join

2012-07-20 Thread Tom Lane
Sergey Konoplev gray...@gmail.com writes: On Thu, Jul 19, 2012 at 6:52 PM, Tom Lane t...@sss.pgh.pa.us wrote: Now I was wondering if a DELETE statement could be rewritten with the same strategy: Not at the moment. There have been discussions of allowing the same table name to be

Re: [SQL] DELETE using an outer join

2012-07-20 Thread Sergey Konoplev
On Fri, Jul 20, 2012 at 5:51 PM, Tom Lane t...@sss.pgh.pa.us wrote: DELETE FROM some_table USING some_table AS s WHERE some_table.col1 = s.col1 AND some_table.col2 = s.col2 AND some_table.id s.id; No, that's a self-join, which isn't what the OP wanted. You can make it work if