Re: query plan and parenthesis - Mailing list pgsql-general

From Tom Lane
Subject Re: query plan and parenthesis
Date
Msg-id 181.1055511206@sss.pgh.pa.us
Whole thread Raw
In response to query plan and parenthesis  (Jan Poslusny <pajout@gingerall.cz>)
List pgsql-general
Jan Poslusny <pajout@gingerall.cz> writes:
> I have following view definition given by '\d' command: SELECT t1.col1
> FROM ((table1 t1 JOIN table2 t2 ON ((t1.id = t2.id))) JOIN table3 t3 ON
> ((t2.some = t3.some)));
> Is query planner able to optimize order of joining (t1, t2), t3 or must
> join with order described by parenthesis ? This is very important for
> joining small (50 rows) and huge (5M rows) tables.

See
http://www.postgresql.org/docs/view.php?version=7.3&idoc=0&file=explicit-joins.html
and the same page updated for 7.4:
http://developer.postgresql.org/docs/postgres/explicit-joins.html

The discussion here seems to have gone off on a tangent: adding or
leaving out explicit parentheses *does not* affect what the planner will
do with a JOIN construct, it only makes it perfectly clear to both you
and the machine what the nesting order is.  If you leave out parentheses
then the joins nest left-to-right, but this is not semantically
different from having written the same thing with parentheses,
eg,  (A JOIN B ...) JOIN C ...

            regards, tom lane

pgsql-general by date:

Previous
From: Patrick Welche
Date:
Subject: Re: [HACKERS] SAP and MySQL ... [and Benchmark]
Next
From: Tom Lane
Date:
Subject: Re: converting from one locale to another