Enable bushy plans by default.

This commit is contained in:
Bruce Momjian 1999-02-18 05:26:34 +00:00
parent e78662d879
commit 65ccd1039a
7 changed files with 21 additions and 52 deletions

View 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

View 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 */

View 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);
}
/*****************************************************************************

View 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);

View 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");
}
/* ----------------

View 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 */

View 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