diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml index 897073742b..35ed28875f 100644 --- a/doc/src/sgml/perform.sgml +++ b/doc/src/sgml/perform.sgml @@ -1,5 +1,5 @@ @@ -350,10 +350,11 @@ SELECT * FROM a CROSS JOIN b, c, d, e WHERE ...; might not want to constrain the planner's search for a good ordering of inner joins inside an outer join. You can't do that directly in the JOIN syntax, but you can get around the syntactic limitation by using - views. For example, + subselects. For example, -CREATE VIEW v1 AS SELECT ... FROM a, b, c WHERE ...; -SELECT * FROM d LEFT JOIN v1 ON (...); +SELECT * FROM d LEFT JOIN + (SELECT * FROM a, b, c WHERE ...) AS ss + ON (...); Here, joining D must be the last step in the query plan, but the planner is free to consider various join orders for A,B,C. @@ -397,7 +398,7 @@ SELECT * FROM d LEFT JOIN v1 ON (...); command, instead of a series of INSERT commands. This reduces parsing, planning, etc overhead a great deal. If you do this then it's not necessary to fool - around with autocommit. + around with autocommit, since it's only one command anyway.