optimizer cleanup
This commit is contained in:
parent
d977ff7b52
commit
e78662d879
3 changed files with 14 additions and 12 deletions
|
@ -5,7 +5,7 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: geqo_eval.c,v 1.33 1999/02/16 00:40:59 momjian Exp $
|
* $Id: geqo_eval.c,v 1.34 1999/02/18 04:55:54 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -86,12 +86,12 @@ geqo_eval(Query *root, Gene *tour, int num_gene)
|
||||||
* gimme_tree
|
* gimme_tree
|
||||||
* this program presumes that only LEFT-SIDED TREES are considered!
|
* this program presumes that only LEFT-SIDED TREES are considered!
|
||||||
*
|
*
|
||||||
* 'outer_rel' is the preceeding join
|
* 'old_rel' is the preceeding join
|
||||||
*
|
*
|
||||||
* Returns a new join relation incorporating all joins in a left-sided tree.
|
* Returns a new join relation incorporating all joins in a left-sided tree.
|
||||||
*/
|
*/
|
||||||
RelOptInfo *
|
RelOptInfo *
|
||||||
gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *outer_rel)
|
gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *old_rel)
|
||||||
{
|
{
|
||||||
RelOptInfo *inner_rel; /* current relation */
|
RelOptInfo *inner_rel; /* current relation */
|
||||||
int base_rel_index;
|
int base_rel_index;
|
||||||
|
@ -115,16 +115,16 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *out
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ /* tree main part */
|
{ /* tree main part */
|
||||||
if (!(new_rels = make_rels_by_clause_joins(root, outer_rel,
|
if (!(new_rels = make_rels_by_clause_joins(root, old_rel,
|
||||||
inner_rel->joininfo,
|
inner_rel->joininfo,
|
||||||
inner_rel->relids)))
|
inner_rel->relids)))
|
||||||
{
|
{
|
||||||
if (!BushyPlanFlag)
|
if (!BushyPlanFlag)
|
||||||
new_rels = make_rels_by_clauseless_joins(outer_rel,
|
new_rels = make_rels_by_clauseless_joins(old_rel,
|
||||||
lcons(inner_rel,NIL));
|
lcons(inner_rel,NIL));
|
||||||
else
|
else
|
||||||
new_rels = make_rels_by_clauseless_joins(outer_rel,
|
new_rels = make_rels_by_clauseless_joins(old_rel,
|
||||||
lcons(outer_rel,NIL));
|
lcons(old_rel,NIL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* process new_rel->pathlist */
|
/* process new_rel->pathlist */
|
||||||
|
@ -168,7 +168,7 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *out
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return outer_rel; /* tree finished ... */
|
return old_rel; /* tree finished ... */
|
||||||
}
|
}
|
||||||
|
|
||||||
static RelOptInfo *
|
static RelOptInfo *
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: geqo_main.c,v 1.13 1999/02/13 23:16:08 momjian Exp $
|
* $Id: geqo_main.c,v 1.14 1999/02/18 04:55:54 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -253,7 +253,8 @@ geqo(Query *root)
|
||||||
best_tour = (Gene *) pool->data[0].string;
|
best_tour = (Gene *) pool->data[0].string;
|
||||||
|
|
||||||
/* root->join_relation_list_ will be modified during this ! */
|
/* root->join_relation_list_ will be modified during this ! */
|
||||||
best_rel = (RelOptInfo *) gimme_tree(root, best_tour, 0, pool->string_length, NULL);
|
best_rel = (RelOptInfo *) gimme_tree(root, best_tour, 0,
|
||||||
|
pool->string_length, NULL);
|
||||||
|
|
||||||
/* DBG: show the query plan
|
/* DBG: show the query plan
|
||||||
print_plan(best_plan, root);
|
print_plan(best_plan, root);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: geqo.h,v 1.12 1999/02/15 05:50:02 momjian Exp $
|
* $Id: geqo.h,v 1.13 1999/02/18 04:55:54 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -75,7 +75,8 @@ extern RelOptInfo *geqo(Query *root);
|
||||||
extern void geqo_params(int string_length);
|
extern void geqo_params(int string_length);
|
||||||
|
|
||||||
extern Cost geqo_eval(Query *root, Gene *tour, int num_gene);
|
extern Cost geqo_eval(Query *root, Gene *tour, int num_gene);
|
||||||
extern RelOptInfo *gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *outer_rel);
|
extern RelOptInfo *gimme_tree(Query *root, Gene *tour, int rel_count,
|
||||||
|
int num_gene, RelOptInfo *old_rel);
|
||||||
|
|
||||||
|
|
||||||
#endif /* GEQO_H */
|
#endif /* GEQO_H */
|
||||||
|
|
Loading…
Reference in a new issue