Enable bushy plans by default.
This commit is contained in:
parent
e78662d879
commit
65ccd1039a
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
/* ----------------
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue