From c94b43ce39f3ee48db04fb8284de0db12526af92 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 9 Apr 2012 20:49:01 -0400 Subject: [PATCH] Adjust various references to GEQO being non-deterministic. It's still non-deterministic in some sense ... but given fixed settings and identical planning problems, it will now always choose the same plan, so we probably shouldn't tar it with that brush. Per bug #6565 from Guillaume Cottenceau. Back-patch to 9.0 where the behavior was fixed. --- doc/src/sgml/config.sgml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 81392997f8..640defde86 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -2784,8 +2784,7 @@ SET ENABLE_SEQSCAN TO OFF; planning using heuristic searching. This reduces planning time for complex queries (those joining many relations), at the cost of producing plans that are sometimes inferior to those found by the normal - exhaustive-search algorithm. Also, GEQO's searching is randomized and - therefore its plans may vary nondeterministically. + exhaustive-search algorithm. For more information see . @@ -2824,9 +2823,11 @@ SET ENABLE_SEQSCAN TO OFF; this many FROM items involved. (Note that a FULL OUTER JOIN construct counts as only one FROM item.) The default is 12. For simpler queries it is usually best - to use the deterministic, exhaustive planner, but for queries with - many tables the deterministic planner takes too long, often - longer than the penalty of executing a suboptimal plan. + to use the regular, exhaustive-search planner, but for queries with + many tables the exhaustive search takes too long, often + longer than the penalty of executing a suboptimal plan. Thus, + a threshold on the size of the query is a convenient way to manage + use of GEQO. @@ -3038,7 +3039,7 @@ SELECT * FROM parent WHERE key = 2400; Setting this value to or more - may trigger use of the GEQO planner, resulting in nondeterministic + may trigger use of the GEQO planner, resulting in non-optimal plans. See . @@ -3073,7 +3074,7 @@ SELECT * FROM parent WHERE key = 2400; Setting this value to or more - may trigger use of the GEQO planner, resulting in nondeterministic + may trigger use of the GEQO planner, resulting in non-optimal plans. See . @@ -4299,7 +4300,7 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; displayed in , in the output of when the BUFFERS option is used, and by . Only superusers can - change this setting. + change this setting.