Re: BUG #12000: "CROSS JOIN" not equivalent to ","

From: David G Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #12000: "CROSS JOIN" not equivalent to ","
Date: 2014-11-18 17:42:39
Message-ID: 1416332559606-5827398.post@n5.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G Johnston 2014-11-18 17:49:54 Re: BUG #12000: "CROSS JOIN" not equivalent to ","
Previous Message Tom Lane 2014-11-18 17:29:03 Re: BUG #12000: "CROSS JOIN" not equivalent to ","