Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit c82ca4c

Browse files
committed
Re-enable bushy plans. Vadim want them.
1 parent cd550c7 commit c82ca4c

File tree

7 files changed

+23
-71
lines changed

7 files changed

+23
-71
lines changed

src/backend/optimizer/geqo/geqo_eval.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*
66
* Copyright (c) 1994, Regents of the University of California
77
*
8-
* $Id: geqo_eval.c,v 1.32 1999/02/15 03:22:00 momjian Exp $
8+
* $Id: geqo_eval.c,v 1.33 1999/02/16 00:40:59 momjian Exp $
99
*
1010
*-------------------------------------------------------------------------
1111
*/
@@ -119,14 +119,12 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *out
119119
inner_rel->joininfo,
120120
inner_rel->relids)))
121121
{
122-
#ifdef NOT_USED
123-
if (BushyPlanFlag)
122+
if (!BushyPlanFlag)
124123
new_rels = make_rels_by_clauseless_joins(outer_rel,
125-
lcons(outer_rel,NIL));
126-
else
127-
#endif
128-
new_rels = make_rels_by_clauseless_joins(outer_rel,
129124
lcons(inner_rel,NIL));
125+
else
126+
new_rels = make_rels_by_clauseless_joins(outer_rel,
127+
lcons(outer_rel,NIL));
130128
}
131129

132130
/* process new_rel->pathlist */

src/backend/optimizer/path/allpaths.c

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.39 1999/02/15 05:49:59 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.40 1999/02/16 00:40:59 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -203,7 +203,6 @@ make_one_rel_by_joins(Query *root, List *rels, int levels_needed)
203203

204204
rels_set_cheapest(joined_rels);
205205

206-
#ifdef NOT_USED
207206
if (BushyPlanFlag)
208207
{
209208
/*
@@ -214,7 +213,6 @@ make_one_rel_by_joins(Query *root, List *rels, int levels_needed)
214213
*/
215214
add_rel_to_rel_joininfos(root, joined_rels, rels);
216215
}
217-
#endif
218216

219217
foreach(x, joined_rels)
220218
{
@@ -230,35 +228,28 @@ make_one_rel_by_joins(Query *root, List *rels, int levels_needed)
230228
#endif
231229
}
232230

233-
#ifdef NOT_USED
234231
if (BushyPlanFlag)
235232
{
236233
/*
237234
* prune rels that have been completely incorporated into new
238235
* join rels
239236
*/
240-
rels = del_rels_all_bushy_inactive(rels);
237+
joined_rels = del_rels_all_bushy_inactive(rels);
241238

242239
/*
243240
* merge join rels if then contain the same list of base rels
244241
*/
245-
joined_rels = merge_rels_with_same_relids(joined_rels, rels);
242+
merge_rels_with_same_relids(joined_rels);
246243
}
247-
#endif
248244
root->join_rel_list = rels = joined_rels;
249245
}
250246

251-
#ifdef NOT_USED
252247
Assert(BushyPlanFlag || length(rels) == 1);
253-
#endif
254-
Assert(length(rels) == 1);
255248

256-
#ifdef NOT_USED
257-
if (BushyPlanFlag)
258-
return get_cheapest_complete_rel(rels);
249+
if (!BushyPlanFlag)
250+
return lfirst(rels);
259251
else
260-
#endif
261-
return lfirst(rels);
252+
return get_cheapest_complete_rel(rels);
262253
}
263254

264255
/*****************************************************************************

src/backend/optimizer/path/joinrels.c

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.25 1999/02/15 05:21:05 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.26 1999/02/16 00:41:00 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -70,12 +70,11 @@ make_rels_by_joins(Query *root, List *outer_rels)
7070
* Oops, we have a relation that is not joined to any other
7171
* relation. Cartesian product time.
7272
*/
73-
#ifdef NOT_USED
74-
if (BushyPlanFlag)
75-
joins = make_rels_by_clauseless_joins(outer_rel, outer_rels);
73+
if (!BushyPlanFlag)
74+
joins = make_rels_by_clauseless_joins(outer_rel,
75+
root->base_rel_list);
7676
else
77-
#endif
78-
joins = make_rels_by_clauseless_joins(outer_rel, root->base_rel_list);
77+
joins = make_rels_by_clauseless_joins(outer_rel, outer_rels);
7978
}
8079

8180
join_list = nconc(join_list, joins);
@@ -137,14 +136,12 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *outer_rel,
137136
joininfo);
138137
}
139138
}
140-
#ifdef NOT_USED
141139
else if (BushyPlanFlag)
142140
{
143141
rel = make_join_rel(outer_rel,
144142
get_join_rel(root, unjoined_rels),
145143
joininfo);
146144
}
147-
#endif
148145
else
149146
rel = NULL;
150147

@@ -246,10 +243,8 @@ make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo)
246243
if (joininfo)
247244
{
248245
joinrel->restrictinfo = joininfo->jinfo_restrictinfo;
249-
#ifdef NOT_USED
250246
if (BushyPlanFlag)
251247
joininfo->bushy_inactive = true;
252-
#endif
253248
}
254249

255250
joinrel_joininfo_list = new_joininfo_list(append(outer_rel->joininfo, inner_rel->joininfo),
@@ -471,7 +466,6 @@ add_rel_to_rel_joininfos(Query *root, List *joinrels, List *outerrels)
471466
}
472467
}
473468

474-
#ifdef NOT_USED
475469
/*
476470
* get_cheapest_complete_rel
477471
* Find the join relation that includes all the original
@@ -515,7 +509,6 @@ get_cheapest_complete_rel(List *join_rel_list)
515509

516510
return final_rel;
517511
}
518-
#endif
519512

520513
/*
521514
* add_superrels

src/backend/optimizer/path/prune.c

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.35 1999/02/15 05:21:05 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.36 1999/02/16 00:41:00 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -106,31 +106,6 @@ rels_set_cheapest(List *rel_list)
106106
}
107107
}
108108

109-
#ifdef NOT_USED
110-
/*
111-
* merge_rels_with_same_relids
112-
* Given two lists of rel nodes that are already
113-
* pruned, merge them into one pruned rel node list
114-
*
115-
* 'rel_list1' and
116-
* 'rel_list2' are the rel node lists
117-
*
118-
* Returns one pruned rel node list
119-
*/
120-
List *
121-
merge_rels_with_same_relids(List *rel_list1, List *rel_list2)
122-
{
123-
List *xrel = NIL;
124-
125-
foreach(xrel, rel_list1)
126-
{
127-
RelOptInfo *rel = (RelOptInfo *) lfirst(xrel);
128-
129-
rel_list2 = merge_rel_with_same_relids(rel, rel_list2);
130-
}
131-
return append(rel_list1, rel_list2);
132-
}
133-
134109
/*
135110
* del_rels_all_bushy_inactive
136111
* If all the joininfo's in a rel node are bushy_inactive,
@@ -175,5 +150,4 @@ del_rels_all_bushy_inactive(List *old_rels)
175150
}
176151
return temp_list;
177152
}
178-
#endif
179153

src/backend/tcop/postgres.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.100 1999/02/15 03:22:21 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.101 1999/02/16 00:41:01 momjian Exp $
1111
*
1212
* NOTES
1313
* this is the "main" module of the postgres backend and
@@ -173,10 +173,8 @@ int UseNewLine = 0; /* Use EOF as query delimiters */
173173
* plans
174174
* ----------------
175175
*/
176-
#ifdef NOT_USED
177176
int BushyPlanFlag = 0; /* default to false -- consider only
178177
* left-deep trees */
179-
#endif
180178

181179
/*
182180
** Flags for expensive function optimization -- JMH 3/9/92
@@ -1043,15 +1041,13 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
10431041
#endif
10441042
break;
10451043

1046-
#ifdef NOT_USED
10471044
case 'b':
10481045
/* ----------------
10491046
* set BushyPlanFlag to true.
10501047
* ----------------
10511048
*/
10521049
BushyPlanFlag = 1;
10531050
break;
1054-
#endif
10551051

10561052
case 'B':
10571053
/* ----------------
@@ -1542,7 +1538,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
15421538
if (!IsUnderPostmaster)
15431539
{
15441540
puts("\nPOSTGRES backend interactive interface ");
1545-
puts("$Revision: 1.100 $ $Date: 1999/02/15 03:22:21 $\n");
1541+
puts("$Revision: 1.101 $ $Date: 1999/02/16 00:41:01 $\n");
15461542
}
15471543

15481544
/* ----------------

src/include/optimizer/internal.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* Copyright (c) 1994, Regents of the University of California
88
*
9-
* $Id: internal.h,v 1.15 1999/02/15 03:22:31 momjian Exp $
9+
* $Id: internal.h,v 1.16 1999/02/16 00:41:03 momjian Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -80,9 +80,7 @@
8080
#define FLOAT_EQUAL(X,Y) ((X) - (Y) < TOLERANCE)
8181
#define FLOAT_IS_ZERO(X) (FLOAT_EQUAL(X,0.0))
8282

83-
#ifdef NOT_USED
8483
extern int BushyPlanFlag;
85-
#endif
8684

8785
/* #define deactivate_joininfo(joininfo) joininfo->inactive=true*/
8886
/*#define joininfo_inactive(joininfo) joininfo->inactive */

src/include/optimizer/paths.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: paths.h,v 1.19 1999/02/15 05:28:10 momjian Exp $
10+
* $Id: paths.h,v 1.20 1999/02/16 00:41:03 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -85,11 +85,13 @@ extern List *make_rels_by_clauseless_joins(RelOptInfo *outer_rel,
8585
List *inner_rels);
8686
extern RelOptInfo *make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo);
8787
extern List *new_join_tlist(List *tlist, List *other_relids,int first_resdomno);
88+
extern RelOptInfo *get_cheapest_complete_rel(List *join_rel_list);
8889

8990
/*
9091
* prototypes for path/prune.c
9192
*/
9293
extern void merge_rels_with_same_relids(List *rel_list);
9394
extern void rels_set_cheapest(List *rel_list);
95+
extern List *del_rels_all_bushy_inactive(List *old_rels);
9496

9597
#endif /* PATHS_H */

0 commit comments

Comments
 (0)