Re: change the order of FROM selection to make query work

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Thomas Peter" <thomas(at)braindumped(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: change the order of FROM selection to make query work
Date: 2006-09-26 14:19:29
Message-ID: 25383.1159280369@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Thomas Peter" <thomas(at)braindumped(dot)com> writes:
> the full code that does produce the error (and this error can be resolved
> as in OP described) is:

Never oversimplify a bug report.

> FROM ticket as t, permission as perm, enum as p
> LEFT OUTER JOIN ticket_custom c ON (t.id = c.ticket AND c.name =
> 'fachabteilung')

The above is, plain and simple, wrong. According to the SQL spec,
JOIN binds more tightly than comma in a FROM-list, so what you had was

FROM ..., (enum as p
LEFT OUTER JOIN ticket_custom c ON (t.id = c.ticket AND c.name =
'fachabteilung'))

which of course fails because only p and c are visible in the JOIN's
ON condition. You fixed it by moving "t" to become part of the JOIN
structure.

I was aware that MySQL parses this sort of structure wrongly, but it's
disappointing to hear that sqlite does too :-(

regards, tom lane

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alban Hertroys 2006-09-26 14:19:32 Re: Dead Lock problem with 8.1.3
Previous Message Martijn van Oosterhout 2006-09-26 14:11:35 Re: Dead Lock problem with 8.1.3