diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c index eec20b250d..73131863c0 100644 --- a/src/backend/optimizer/path/allpaths.c +++ b/src/backend/optimizer/path/allpaths.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.35 1999/02/15 03:22:03 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.36 1999/02/15 03:59:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -211,7 +211,7 @@ make_one_rel_by_joins(Query *root, List *outer_rels, int levels_needed) * involves the join relation to the joininfo list of the * other relation */ - add_new_joininfos(root, joined_rels, outer_rels); + add_rel_to_rel_joininfos(root, joined_rels, outer_rels); } #endif @@ -236,12 +236,12 @@ make_one_rel_by_joins(Query *root, List *outer_rels, int levels_needed) * prune rels that have been completely incorporated into new * join rels */ - outer_rels = prune_oldrels(outer_rels); + outer_rels = del_rels_all_bushy_inactive(outer_rels); /* * merge join rels if then contain the same list of base rels */ - outer_rels = merge_joinrels(joined_rels, outer_rels); + outer_rels = merge_rels_with_same_relids(joined_rels, outer_rels); root->join_rel_list = outer_rels; } else diff --git a/src/backend/optimizer/path/joinrels.c b/src/backend/optimizer/path/joinrels.c index cd0a082b73..4ff091b4b0 100644 --- a/src/backend/optimizer/path/joinrels.c +++ b/src/backend/optimizer/path/joinrels.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.23 1999/02/15 03:22:05 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.24 1999/02/15 03:59:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -373,7 +373,7 @@ new_joininfo_list(List *joininfo_list, List *join_relids) } /* - * add_new_joininfos + * add_rel_to_rel_joininfos * For each new join relation, create new joininfos that * use the join relation as inner relation, and add * the new joininfos to those rel nodes that still @@ -384,7 +384,7 @@ new_joininfo_list(List *joininfo_list, List *join_relids) * Modifies the joininfo field of appropriate rel nodes. */ void -add_new_joininfos(Query *root, List *joinrels, List *outerrels) +add_rel_to_rel_joininfos(Query *root, List *joinrels, List *outerrels) { List *xjoinrel = NIL; List *xrelid = NIL; @@ -462,6 +462,7 @@ add_new_joininfos(Query *root, List *joinrels, List *outerrels) } } } + foreach(xrel, outerrels) { RelOptInfo *rel = (RelOptInfo *) lfirst(xrel); diff --git a/src/backend/optimizer/path/prune.c b/src/backend/optimizer/path/prune.c index ab1e8fff66..2c9e600e57 100644 --- a/src/backend/optimizer/path/prune.c +++ b/src/backend/optimizer/path/prune.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.33 1999/02/15 03:22:06 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.34 1999/02/15 03:59:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -48,7 +48,7 @@ merge_rels_with_same_relids(List *rel_list) } /* - * merge_rel_with_same_relids + * merge_rel_with_same_relids * Prunes those relations from 'other_rels' that are redundant with * 'rel'. A relation is redundant if it is built up of the same * relations as 'rel'. Paths for the redundant relation are merged into @@ -108,7 +108,7 @@ rels_set_cheapest(List *rel_list) #ifdef NOT_USED /* - * merge_joinrels + * merge_rels_with_same_relids * Given two lists of rel nodes that are already * pruned, merge them into one pruned rel node list * @@ -118,7 +118,7 @@ rels_set_cheapest(List *rel_list) * Returns one pruned rel node list */ List * -merge_joinrels(List *rel_list1, List *rel_list2) +merge_rels_with_same_relids(List *rel_list1, List *rel_list2) { List *xrel = NIL; @@ -132,7 +132,7 @@ merge_joinrels(List *rel_list1, List *rel_list2) } /* - * prune_oldrels + * del_rels_all_bushy_inactive * If all the joininfo's in a rel node are bushy_inactive, * that means that this node has been joined into * other nodes in all possible ways, therefore @@ -144,7 +144,7 @@ merge_joinrels(List *rel_list1, List *rel_list2) * Returns a new list of rel nodes */ List * -prune_oldrels(List *old_rels) +del_rels_all_bushy_inactive(List *old_rels) { RelOptInfo *rel; List *joininfo_list, diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h index 990cf79224..1d728529d0 100644 --- a/src/include/optimizer/paths.h +++ b/src/include/optimizer/paths.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: paths.h,v 1.17 1999/02/15 03:22:31 momjian Exp $ + * $Id: paths.h,v 1.18 1999/02/15 03:59:28 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -78,7 +78,7 @@ extern MergeInfo *match_order_mergeinfo(PathOrder *ordering, * routines to determine which relations to join */ extern List *make_rels_by_joins(Query *root, List *outer_rels); -extern void add_new_joininfos(Query *root, List *joinrels, List *outerrels); +extern void add_rel_to_rel_joininfos(Query *root, List *joinrels, List *outerrels); extern List *make_rels_by_clause_joins(Query *root, RelOptInfo *outer_rel, List *joininfo_list, List *only_relids); extern List *make_rels_by_clauseless_joins(RelOptInfo *outer_rel,