Re: BUG #12000: "CROSS JOIN" not equivalent to "," - Mailing list pgsql-bugs

From David G Johnston
Subject Re: BUG #12000: "CROSS JOIN" not equivalent to ","
Date
Msg-id 1416332559606-5827398.post@n5.nabble.com
Whole thread Raw
In response to BUG #12000: "CROSS JOIN" not equivalent to ","  (kunert@cms.hu-berlin.de)
Responses Re: BUG #12000: "CROSS JOIN" not equivalent to ","  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-bugs
Dr. Andreas Kunert wrote
> According to the documentation
> http://www.postgresql.org/docs/9.3/static/queries-table-expressions.html
> (7.2.1.1):
> "FROM T1 CROSS JOIN T2 is equivalent to FROM T1, T2"
>
> However, in the following example the SQL-Query using "CROSS JOIN" works,
> while the usage of "," results in an invalid reference:
>
>     table1 a
>     , table1 b
>     left outer join table2 c on a.x = y and b.x = z;

It does not say that:

A, B JOIN C is equivalent to A CROSS JOIN B JOIN C

The "," introduces lower precedence operator to the mix and so the B JOIN C
is evaluated first and the corresponding "ON" clause can only refer to those
two tables.

In effect you are writing:

FROM A, (B JOIN C)

I personally find the use of "," in the FROM-clause to be poor form and its
even worse if you decide to mix both "," and explicit JOIN clauses.  If you
want to make this be explained better feel free to provide suggestions; but
I'd suggest you simply forget the fact that "FROM A, B" is even valid and
just use the proper joining keywords instead.

Given this does not work as far back at 9.0 I would say that it is not a
bug.  Nor do I believe it is particularly under-documented; its just
complicated because of the mixing of two separate concepts.

David J.




--
View this message in context:
http://postgresql.nabble.com/BUG-12000-CROSS-JOIN-not-equivalent-to-tp5827394p5827398.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #12000: "CROSS JOIN" not equivalent to ","
Next
From: David G Johnston
Date:
Subject: Re: BUG #12000: "CROSS JOIN" not equivalent to ","