Re: " Adding missing FROM-clause entry for table .... " problem. - Mailing list pgsql-sql

From Tom Lane
Subject Re: " Adding missing FROM-clause entry for table .... " problem.
Date
Msg-id 23770.1045583425@sss.pgh.pa.us
Whole thread Raw
In response to Re: " Adding missing FROM-clause entry for table .... " problem.  (Bruno Wolff III <bruno@wolff.to>)
Responses Re: " Adding missing FROM-clause entry for table .... " problem.  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-sql
Bruno Wolff III <bruno@wolff.to> writes:
> Christoph Haller <ch@rodos.fzk.de> wrote:
>> AFAIK, statements like
>> DELETE FROM t1 where t1.id = t2.id ;
>> are legal. Could the parser still work on this, if the feature is
>> removed?

> Only if a new syntax is added.

For UPDATE, we actually do have an extension syntax that allows naming
secondary tables explicitly:
UPDATE target SET ... FROM other-tables WHERE ...

The trouble with extending this to DELETE is that DELETE already uses
the keyword FROM.  Seems like we are stuck with a choice between
DELETE FROM target FROM other-tables WHERE ...
DELETE FROM target, other-tables WHERE ...

both of which are bizarre and confusing to my eyes.  I think that MySQL
uses the second form, which I like even less than the first (it obscures
the very fundamental semantic difference between the deletion target and
the other tables).

Or we could go off with a different keyword, perhaps
DELETE FROM target WITH other-tables WHERE ...

but that doesn't seem to pass the low-astonishment test either.

Comments?  It would not be difficult to implement any of these
alternatives.  <hhg>okay, you think it's so easy, *you* decide
what color it should be</hhg>
        regards, tom lane


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: " Adding missing FROM-clause entry for table .... " problem.
Next
From: Jeff Eckermann
Date:
Subject: Re: " Adding missing FROM-clause entry for table .... " problem.