<!--
-$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.
<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
*
* 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 $
*
*-------------------------------------------------------------------------
*/
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 */
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
* 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.
*
}
- Assert(BushyPlanFlag || length(rels) == 1);
-
- if (!BushyPlanFlag)
- return lfirst(rels);
- else
- return get_cheapest_complete_rel(rels);
+ return get_cheapest_complete_rel(rels);
}
/*****************************************************************************
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
*/
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);
*
*
* 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
#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
*/
#endif
break;
- case 'b':
- /* ----------------
- * set BushyPlanFlag to true.
- * ----------------
- */
- BushyPlanFlag = 1;
- break;
-
case 'B':
/* ----------------
* specify the size of buffer pool
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");
}
/* ----------------
*
* 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 $
*
*-------------------------------------------------------------------------
*/
#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 */
.\" 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
.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