summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim B. Mikheev1997-06-02 11:14:40 +0000
committerVadim B. Mikheev1997-06-02 11:14:40 +0000
commit05404562fb2b850e4202de9b3fe769c17fa43903 (patch)
tree73c106310c3c88810a09b07c26f1c2e4f8ad9e7a
parentcda886fd06a1ab6c2d5ff42d442905e971327279 (diff)
Use GEQO if _use_geqo_ is TRUE and # of relations is >= _use_geqo_rels_
(both are settable via SET geqo TO ...).
-rw-r--r--src/backend/optimizer/path/allpaths.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c
index ac1f2b414d..6469e7ecb6 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.7 1997/06/01 02:55:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.8 1997/06/02 11:14:40 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -38,6 +38,7 @@ bool _use_geqo_ = true;
#else
bool _use_geqo_ = false;
#endif
+int32 _use_geqo_rels_ = GEQO_RELS;
static void find_rel_paths(Query *root, List *rels);
@@ -173,7 +174,7 @@ find_join_paths(Query *root, List *outer_rels, int levels_left)
*******************************************/
- if ( (_use_geqo_) || length(root->base_relation_list_) >= GEQO_RELS )
+ if ( (_use_geqo_) && length(root->base_relation_list_) >= _use_geqo_rels_ )
return lcons(geqo(root), NIL); /* returns *one* Rel, so lcons it */
/*******************************************