Re: DELETE syntax on JOINS

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Jean-Michel Pouré <jm(at)poure(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: DELETE syntax on JOINS
Date: 2009-08-24 16:14:56
Message-ID: 20090824161456.GD5962@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian wrote:
> Alvaro Herrera wrote:
> > Bruce Momjian wrote:
> >
> > > > Ultimately, why not allow:
> > > >
> > > > DELETE h, tn
> > > > FROM history AS h
> > > > INNER JOIN term_node AS tn ON (h.nid = tn.nid)
> > > > INNER JOIN term_data AS td ON (td.tid = tn.tid)
> > > > WHERE h.uid = 2067 AND td.vid = 2
> > > >
> > > > IMHO this would improve compliance towards other database systems. To me
> > > > this seems to be in the reasonable scope of compatibility.
> > >
> > > Which "other database systems"? Only MySQL? If it is MySQL-only, we
> > > are unlikely to add it.
> >
> > The SQL standard does not support this syntax. They would have you put
> > the joins in a subselect (which is often not enough because then you
> > can't use outer joins).
>
> So the problem is that our DELETE ... USING does not allow ANSI join
> syntax? Can that be added?

Not sure about that. USING is already an extension to the standard, so
if we extend it a bit more, it can't be a problem, can it? But this
doesn't solve Jean Michel's problem, because MySQL does not support
DELETE USING (or does it?).

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2009-08-24 16:19:28 Re: compilation with libeditpreferred is broken
Previous Message David Fetter 2009-08-24 16:12:07 Bug in date arithmetic