OSDN Git Service

Enable bushy plans by default.
authorBruce Momjian <bruce@momjian.us>
Thu, 18 Feb 1999 05:26:34 +0000 (05:26 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 18 Feb 1999 05:26:34 +0000 (05:26 +0000)
doc/src/sgml/geqo.sgml
src/backend/optimizer/geqo/geqo_eval.c
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/joinrels.c
src/backend/tcop/postgres.c
src/include/optimizer/internal.h
src/man/postgres.1

index 88ebb62..205d0cf 100644 (file)
@@ -1,8 +1,11 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/geqo.sgml,v 1.5 1998/12/29 02:24:15 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/geqo.sgml,v 1.6 1999/02/18 05:26:17 momjian Exp $
 Genetic Optimizer
 
 $Log: geqo.sgml,v $
+Revision 1.6  1999/02/18 05:26:17  momjian
+Enable bushy plans by default.
+
 Revision 1.5  1998/12/29 02:24:15  thomas
 Clean up to ensure tag completion as required by the newest versions
  of Norm's Modular Style Sheets and jade/docbook.
@@ -308,11 +311,6 @@ Suggestions are welcome :-(
 <Sect2>
 <Title>Further Improvements</Title>
 
-<Para>
-Enable bushy query tree processing within <ProductName>Postgres</ProductName>;
-that may improve the quality of query plans.
-</para>
-
 <BIBLIOGRAPHY Id="geqo-biblio">
 <TITLE>
 References
index a3f7278..6077b22 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geqo_eval.c,v 1.34 1999/02/18 04:55:54 momjian Exp $
+ * $Id: geqo_eval.c,v 1.35 1999/02/18 05:26:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -119,12 +119,13 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *old
                                                                                                           inner_rel->joininfo,
                                                                                                           inner_rel->relids)))
                        {
-                               if (!BushyPlanFlag)
-                                       new_rels = make_rels_by_clauseless_joins(old_rel,
-                                                                                                       lcons(inner_rel,NIL));
-                               else
-                                       new_rels = make_rels_by_clauseless_joins(old_rel,
+                               new_rels = make_rels_by_clauseless_joins(old_rel,
+                                                                                               lcons(inner_rel,NIL));
+                               /* we don't do bushy plans in geqo, do we?  bjm 02/18/1999
+                               new_rels = append(new_rels,
+                                                                 make_rels_by_clauseless_joins(old_rel,
                                                                                                         lcons(old_rel,NIL));
+                               */
                        }
 
                        /* process new_rel->pathlist */
index a4aa7ba..9cf494c 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.41 1999/02/18 00:49:17 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.42 1999/02/18 05:26:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -147,7 +147,6 @@ set_base_rel_pathlist(Query *root, List *rels)
  *       Find all possible joinpaths for a query by successively finding ways
  *       to join single relations into join relations.
  *
- *       if BushyPlanFlag is set, bushy tree plans will be generated:
  *       Find all possible joinpaths(bushy trees) for a query by systematically
  *       finding ways to join relations(both original and derived) together.
  *
@@ -221,12 +220,7 @@ make_one_rel_by_joins(Query *root, List *rels, int levels_needed)
 
        }
 
-       Assert(BushyPlanFlag || length(rels) == 1);
-
-       if (!BushyPlanFlag)
-               return lfirst(rels);
-       else
-               return get_cheapest_complete_rel(rels);
+       return get_cheapest_complete_rel(rels);
 }
 
 /*****************************************************************************
index 195e72a..146584d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.28 1999/02/18 04:45:36 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.29 1999/02/18 05:26:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -69,9 +69,9 @@ make_rels_by_joins(Query *root, List *old_rels)
                         */
                        joined_rels = make_rels_by_clauseless_joins(old_rel,
                                                                                                                root->base_rel_list);
-                       if (BushyPlanFlag)
-                               joined_rels = make_rels_by_clauseless_joins(old_rel,
-                                                                                                                       old_rels);
+                       joined_rels = append(joined_rels,
+                                                                make_rels_by_clauseless_joins(old_rel,
+                                                                                                                          old_rels));
                }
 
                join_list = nconc(join_list, joined_rels);
index 329d47b..49c652f 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.101 1999/02/16 00:41:01 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.102 1999/02/18 05:26:24 momjian Exp $
  *
  * NOTES
  *       this is the "main" module of the postgres backend and
@@ -168,14 +168,6 @@ int                        UseNewLine = 0;         /* Use EOF as query delimiters */
 
 #endif  /* TCOP_DONTUSENEWLINE */
 
-/* ----------------
- *             bushy tree plan flag: if true planner will generate bushy-tree
- *             plans
- * ----------------
- */
-int                    BushyPlanFlag = 0;      /* default to false -- consider only
-                                                                * left-deep trees */
-
 /*
 ** Flags for expensive function optimization -- JMH 3/9/92
 */
@@ -1041,14 +1033,6 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 #endif
                                break;
 
-                       case 'b':
-                               /* ----------------
-                                *      set BushyPlanFlag to true.
-                                * ----------------
-                                */
-                               BushyPlanFlag = 1;
-                               break;
-
                        case 'B':
                                /* ----------------
                                 *      specify the size of buffer pool
@@ -1538,7 +1522,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
        if (!IsUnderPostmaster)
        {
                puts("\nPOSTGRES backend interactive interface ");
-               puts("$Revision: 1.101 $ $Date: 1999/02/16 00:41:01 $\n");
+               puts("$Revision: 1.102 $ $Date: 1999/02/18 05:26:24 $\n");
        }
 
        /* ----------------
index 746ec87..a9c32f5 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: internal.h,v 1.16 1999/02/16 00:41:03 momjian Exp $
+ * $Id: internal.h,v 1.17 1999/02/18 05:26:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -80,8 +80,6 @@
 #define FLOAT_EQUAL(X,Y) ((X) - (Y) < TOLERANCE)
 #define FLOAT_IS_ZERO(X) (FLOAT_EQUAL(X,0.0))
 
-extern int     BushyPlanFlag;
-
 /* #define deactivate_joininfo(joininfo)               joininfo->inactive=true*/
 /*#define joininfo_inactive(joininfo)  joininfo->inactive */
 
index 3373f1b..ef9b72a 100644 (file)
@@ -1,6 +1,6 @@
 .\" This is -*-nroff-*-
 .\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/postgres.1,v 1.12 1998/08/24 01:51:20 momjian Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/postgres.1,v 1.13 1999/02/18 05:26:34 momjian Exp $
 .TH POSTGRESQL UNIX 12/08/96 PostgreSQL PostgreSQL
 .SH NAME
 postgres - the Postgres backend server
@@ -173,12 +173,6 @@ Turns off the locking system.
 .BR "-N"
 Disables use of newline as a query delimiter.
 .TP
-.BR "-b"
-Enables generation of bushy query plan trees (as opposed to left-deep
-query plans trees).  These query plans are not intended for actual
-execution; in addition, this flag often causes Postgres to run out of
-memory.
-.TP
 .BR "-f"
 Forbids the use of particular scan and join methods:
 .IR s " and " i