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 88ebb628ab2e381949a96825d8f08a77315f9212..205d0cf78744a8fbf5f574b3e50c0ec1c10ca7c8 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 a3f72781080abeea2dd78e63226493e4ac5f5aba..6077b2217e423c5c53a2129f84ee728c40915af2 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 a4aa7ba8db84ff5f1ad09d44cf2f25d6cf82da54..9cf494c926af0bb6a28488f22ef05fcd1931e188 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 195e72a052c4cd7f0e566a829d06bc452f4e7d41..146584d5a1e67e4c9da1b43373c2efdbeaa2f453 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 329d47bc80340c508c594f3d3838616f41b8cae8..49c652f51c9ffc10920c2fcabffc798f4c5981ef 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 746ec87eae1257dab806cc6dfd7851a64ece5c2d..a9c32f535e2fb6fa527ec7fcd3ef5108ff0a7a00 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 3373f1b36152ebbb7014d628e14869dba9f9f550..ef9b72af3159dfde9448363ee033cff9ed1c6e52 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