Commit b4e7510e authored by Bruce Momjian's avatar Bruce Momjian

Enable bushy and right-hand queries by default.

parent 65ccd103
...@@ -413,64 +413,12 @@ SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">timezone</REPLACEABLE>' | LOCAL ...@@ -413,64 +413,12 @@ SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">timezone</REPLACEABLE>' | LOCAL
<para> <para>
The frontend may be initialized by setting PGGEQO The frontend may be initialized by setting PGGEQO
environment variable. environment variable.
<variablelist>
<varlistentry>
<term>
R_PLANS
</term>
<listitem>
<para>
Determines whether right-hand plan evaluation is allowed:
</para>
<variablelist>
<varlistentry>
<term>
On
</term>
<listitem>
<para>
enables right-hand evaluation of plans.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Off
</term>
<listitem>
<para>
disables right-hand evaluation of plans.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
DEFAULT
</term>
<listitem>
<para>
Equivalent to specifying <command>SET R_PLANS='off'</command>.
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</para> </para>
<para> <para>
It may be useful when joining big relations with It may be useful when joining big relations with
small ones. This algorithm is off by default. small ones. This algorithm is off by default.
It's not used by GEQO anyway. It's not used by GEQO anyway.
</para>
<para>
The frontend may be initialized by setting the PGRPLANS
environment variable.
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term> <term>
...@@ -527,7 +475,7 @@ SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">timezone</REPLACEABLE>' | LOCAL ...@@ -527,7 +475,7 @@ SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">timezone</REPLACEABLE>' | LOCAL
It's not used by GEQO anyway. It's not used by GEQO anyway.
</para> </para>
<para> <para>
The frontend may be initialized by setting the PGRPLANS The frontend may be initialized by setting the PGKSQO
environment variable. environment variable.
<variablelist> <variablelist>
<varlistentry> <varlistentry>
...@@ -686,11 +634,6 @@ SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">timezone</REPLACEABLE>' | LOCAL ...@@ -686,11 +634,6 @@ SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">timezone</REPLACEABLE>' | LOCAL
-- --
SET GEQO = DEFAULT; SET GEQO = DEFAULT;
</programlisting> </programlisting>
<programlisting>
--Turn on right-hand evaluation of plans:
--
SET R_PLANS TO 'on';
</programlisting>
<programlisting> <programlisting>
--set the timezone for Berkeley, California: --set the timezone for Berkeley, California:
SET TIME ZONE 'PST8PDT'; SET TIME ZONE 'PST8PDT';
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* Routines for handling of 'SET var TO', * Routines for handling of 'SET var TO',
* 'SHOW var' and 'RESET var' statements. * 'SHOW var' and 'RESET var' statements.
* *
* $Id: variable.c,v 1.18 1998/12/18 09:10:20 vadim Exp $ * $Id: variable.c,v 1.19 1999/02/18 06:00:44 momjian Exp $
* *
*/ */
...@@ -36,9 +36,6 @@ static bool parse_cost_heap(const char *); ...@@ -36,9 +36,6 @@ static bool parse_cost_heap(const char *);
static bool show_cost_index(void); static bool show_cost_index(void);
static bool reset_cost_index(void); static bool reset_cost_index(void);
static bool parse_cost_index(const char *); static bool parse_cost_index(const char *);
static bool show_r_plans(void);
static bool reset_r_plans(void);
static bool parse_r_plans(const char *);
static bool reset_geqo(void); static bool reset_geqo(void);
static bool show_geqo(void); static bool show_geqo(void);
static bool parse_geqo(const char *); static bool parse_geqo(const char *);
...@@ -58,7 +55,6 @@ extern Cost _cpu_page_wight_; ...@@ -58,7 +55,6 @@ extern Cost _cpu_page_wight_;
extern Cost _cpu_index_page_wight_; extern Cost _cpu_index_page_wight_;
extern bool _use_geqo_; extern bool _use_geqo_;
extern int32 _use_geqo_rels_; extern int32 _use_geqo_rels_;
extern bool _use_right_sided_plans_;
extern bool _use_keyset_query_optimizer; extern bool _use_keyset_query_optimizer;
/* /*
...@@ -242,53 +238,6 @@ reset_geqo(void) ...@@ -242,53 +238,6 @@ reset_geqo(void)
return TRUE; return TRUE;
} }
/*
*
* R_PLANS
*
*/
static bool
parse_r_plans(const char *value)
{
if (value == NULL)
{
reset_r_plans();
return TRUE;
}
if (strcasecmp(value, "on") == 0)
_use_right_sided_plans_ = true;
else if (strcasecmp(value, "off") == 0)
_use_right_sided_plans_ = false;
else
elog(ERROR, "Bad value for Right-sided Plans (%s)", value);
return TRUE;
}
static bool
show_r_plans()
{
if (_use_right_sided_plans_)
elog(NOTICE, "Right-sided Plans are ON");
else
elog(NOTICE, "Right-sided Plans are OFF");
return TRUE;
}
static bool
reset_r_plans()
{
#ifdef USE_RIGHT_SIDED_PLANS
_use_right_sided_plans_ = true;
#else
_use_right_sided_plans_ = false;
#endif
return TRUE;
}
/* /*
* *
* COST_HEAP * COST_HEAP
...@@ -659,9 +608,6 @@ struct VariableParsers ...@@ -659,9 +608,6 @@ struct VariableParsers
{ {
"geqo", parse_geqo, show_geqo, reset_geqo "geqo", parse_geqo, show_geqo, reset_geqo
}, },
{
"r_plans", parse_r_plans, show_r_plans, reset_r_plans
},
#ifdef MULTIBYTE #ifdef MULTIBYTE
{ {
"client_encoding", parse_client_encoding, show_client_encoding, reset_client_encoding "client_encoding", parse_client_encoding, show_client_encoding, reset_client_encoding
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.29 1999/02/18 05:26:19 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.30 1999/02/18 06:00:46 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -23,14 +23,6 @@ ...@@ -23,14 +23,6 @@
#include "optimizer/joininfo.h" #include "optimizer/joininfo.h"
#include "optimizer/pathnode.h" #include "optimizer/pathnode.h"
#ifdef USE_RIGHT_SIDED_PLANS
bool _use_right_sided_plans_ = true;
#else
bool _use_right_sided_plans_ = false;
#endif
static List *new_joininfo_list(List *joininfo_list, Relids join_relids); static List *new_joininfo_list(List *joininfo_list, Relids join_relids);
static bool nonoverlap_sets(List *s1, List *s2); static bool nonoverlap_sets(List *s1, List *s2);
static bool is_subset(List *s1, List *s2); static bool is_subset(List *s1, List *s2);
...@@ -122,8 +114,7 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel, ...@@ -122,8 +114,7 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel,
join_list = lappend(join_list, joined_rel); join_list = lappend(join_list, joined_rel);
/* Right-sided plan */ /* Right-sided plan */
if (_use_right_sided_plans_ && if (length(old_rel->relids) > 1)
length(old_rel->relids) > 1)
{ {
joined_rel = make_join_rel( joined_rel = make_join_rel(
get_base_rel(root, lfirsti(unjoined_relids)), get_base_rel(root, lfirsti(unjoined_relids)),
...@@ -133,7 +124,7 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel, ...@@ -133,7 +124,7 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel,
} }
} }
if (BushyPlanFlag && only_relids == NIL) /* no bushy from geqo */ if (only_relids == NIL) /* no bushy from geqo */
{ {
List *r; List *r;
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.102 1999/02/18 05:26:24 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.103 1999/02/18 06:00:49 momjian Exp $
* *
* NOTES * NOTES
* this is the "main" module of the postgres backend and * this is the "main" module of the postgres backend and
...@@ -907,7 +907,7 @@ usage(char *progname) ...@@ -907,7 +907,7 @@ usage(char *progname)
fprintf(stderr, fprintf(stderr,
"Usage: %s [options] [dbname]\n", progname); "Usage: %s [options] [dbname]\n", progname);
#ifdef USE_ASSERT_CHECKING #ifdef USE_ASSERT_CHECKING
fprintf(stderr, " A: enable/disable assert checking\n"); fprintf(stderr, "\t-A enable/disable assert checking\n");
#endif #endif
fprintf(stderr, "\t-B buffers\tset number of buffers in buffer pool\n"); fprintf(stderr, "\t-B buffers\tset number of buffers in buffer pool\n");
fprintf(stderr, "\t-C \t\tsupress version info\n"); fprintf(stderr, "\t-C \t\tsupress version info\n");
...@@ -1017,7 +1017,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[]) ...@@ -1017,7 +1017,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
optind = 1; /* reset after postmaster usage */ optind = 1; /* reset after postmaster usage */
while ((flag = getopt(argc, argv, while ((flag = getopt(argc, argv,
"A:B:bCD:d:Eef:iK:Lm:MNo:P:pQS:st:v:x:FW:")) "A:B:CD:d:Eef:iK:Lm:MNo:P:pQS:st:v:x:FW:"))
!= EOF) != EOF)
switch (flag) switch (flag)
{ {
...@@ -1522,7 +1522,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[]) ...@@ -1522,7 +1522,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
if (!IsUnderPostmaster) if (!IsUnderPostmaster)
{ {
puts("\nPOSTGRES backend interactive interface "); puts("\nPOSTGRES backend interactive interface ");
puts("$Revision: 1.102 $ $Date: 1999/02/18 05:26:24 $\n"); puts("$Revision: 1.103 $ $Date: 1999/02/18 06:00:49 $\n");
} }
/* ---------------- /* ----------------
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.92 1999/02/13 23:22:40 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.93 1999/02/18 06:01:00 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -136,9 +136,6 @@ static struct EnvironmentOptions ...@@ -136,9 +136,6 @@ static struct EnvironmentOptions
{ {
"PGCOSTINDEX", "cost_index" "PGCOSTINDEX", "cost_index"
}, },
{
"PGRPLANS", "r_plans"
},
{ {
"PGGEQO", "geqo" "PGGEQO", "geqo"
}, },
......
.\" This is -*-nroff-*- .\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here.... .\" XXX standard disclaimer belongs here....
.\" $Header: /cvsroot/pgsql/src/man/Attic/set.l,v 1.14 1999/02/14 04:57:02 momjian Exp $ .\" $Header: /cvsroot/pgsql/src/man/Attic/set.l,v 1.15 1999/02/18 06:01:11 momjian Exp $
.TH SET SQL 05/14/97 PostgreSQL PostgreSQL .TH SET SQL 05/14/97 PostgreSQL PostgreSQL
.SH NAME .SH NAME
set - set run-time parameters for session set - set run-time parameters for session
...@@ -60,24 +60,6 @@ for more information. ...@@ -60,24 +60,6 @@ for more information.
on=10 - use for statements with 10 or more tables on=10 - use for statements with 10 or more tables
off - do not use the genetic optimizer off - do not use the genetic optimizer
.fi .fi
.PP
.IR R_PLANS
enables or disables right-hand evaluation of plans. It may be useful
when joining big relations with small ones. This algorithm is
.IR off
by default. It's not used by GEQO anyway.
.if n .ta 5 +15 +40
.if t .ta 0.5i +1.5i +3.0i
.in 0
.nf
.ce 1
\fBR_PLANS Values\fR
on - turn right-hand plan evaluation 'on'
off - do not use right-hand plan evaluation
.fi
.PP .PP
.IR QUERY_LIMIT .IR QUERY_LIMIT
restricts the number of rows returned by a query. restricts the number of rows returned by a query.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment