Re: swap relations to be able to execute a left join - Mailing list pgsql-general

From David Rio Deiros
Subject Re: swap relations to be able to execute a left join
Date
Msg-id 20051209200917.GA10327@milhouse.digitaria.com
Whole thread Raw
In response to Re: swap relations to be able to execute a left join  (Michael Fuhr <mike@fuhr.org>)
List pgsql-general
On Fri, Dec 09, 2005 at 12:29:02PM -0700, Michael Fuhr wrote:
> On Fri, Dec 09, 2005 at 02:17:59PM -0500, Tom Lane wrote:
> > Michael Fuhr <mike@fuhr.org> writes:
> > > Hmm...I get errors in MySQL 5.0.16 with the query as posted so I
> > > have to wonder what the real query was.
> >
> > (tries it...)  After removing the bogus comma, MySQL 4.1.14 swallows
> > the query without complaint, so it would seem that MySQL finally fixed
> > this bug at 5.0.  I wonder what the OP's coworker will say when he tries
> > to migrate his code to 5.0 ...
>
> Here we go:
>
> http://dev.mysql.com/doc/refman/5.0/en/join.html
>
> "Before MySQL 5.0.12, the comma operator (,) and JOIN both had the same
> precedence, so the join expression t1, t2 JOIN t3 was intrepreted as
> ((t1, t2) JOIN t3). Now JOIN has higher precedence, so the expression is
> interpreted as (t1, (t2 JOIN t3))."

Michael, Jaime, Tom, thanks for you answers.

Sorry for the bogus comma. The query had initially more fields in the select
but I just removed them to make the query smaller. I missed to remove that
comma.

This is what I am going to send to my coworker:
I think you may want to be interested in the reply that I am going to send
to my coworker:

-----------
Dear Mr I love mysql,

Your query worked in mysql (versions prior to 5.0.12) because Mysql was
not following the sql standard. So you were relying in a bug
and not in a feature. Luckily that bug has been fixed in the latest
mysql release:

http://dev.mysql.com/doc/refman/5.0/en/join.html

"Before MySQL 5.0.12, the comma operator (,) and JOIN both had the same
precedence, so the join expression t1, t2 JOIN t3 was interpreted as
((t1, t2) JOIN t3). Now JOIN has higher precedence, so the expression is
interpreted as (t1, (t2 JOIN t3))."
---------

Thanks again,

David



pgsql-general by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: swap relations to be able to execute a left join
Next
From: Chris Browne
Date:
Subject: Re: find last day of month