diff options
author | Bruce Momjian <bruce@momjian.us> | 1999-02-12 06:43:53 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1999-02-12 06:43:53 +0000 |
commit | c0d17c7aee68bb73140d11dc03973157e6ca7e76 (patch) | |
tree | e973403fc12f201021ac3a379baa859eed7c9308 /src/backend/optimizer/path/joinpath.c | |
parent | 3fdb9bb9c74afa79f574438cbbf5178d30463bb6 (diff) | |
download | postgresql-c0d17c7aee68bb73140d11dc03973157e6ca7e76.tar.gz postgresql-c0d17c7aee68bb73140d11dc03973157e6ca7e76.zip |
JoinPath -> NestPath for nested loop.
Diffstat (limited to 'src/backend/optimizer/path/joinpath.c')
-rw-r--r-- | src/backend/optimizer/path/joinpath.c | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c index 2c82d4f64d5..64ad7554b5a 100644 --- a/src/backend/optimizer/path/joinpath.c +++ b/src/backend/optimizer/path/joinpath.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.20 1999/02/11 14:58:52 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.21 1999/02/12 06:43:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -87,23 +87,21 @@ find_all_join_paths(Query *root, List *joinrels) * list of integers. */ innerrel = (length(innerrelids) == 1) ? - get_base_rel(root, lfirsti(innerrelids)) : get_join_rel(root, innerrelids); + get_base_rel(root, lfirsti(innerrelids)) : + get_join_rel(root, innerrelids); outerrel = (length(outerrelids) == 1) ? - get_base_rel(root, lfirsti(outerrelids)) : get_join_rel(root, outerrelids); + get_base_rel(root, lfirsti(outerrelids)) : + get_join_rel(root, outerrelids); + + bestinnerjoin = best_innerjoin(innerrel->innerjoin, outerrel->relids); - bestinnerjoin = best_innerjoin(innerrel->innerjoin, - outerrel->relids); if (_enable_mergejoin_) - { mergeinfo_list = group_clauses_by_order(joinrel->restrictinfo, lfirsti(innerrel->relids)); - } if (_enable_hashjoin_) - { hashinfo_list = group_clauses_by_hashop(joinrel->restrictinfo, lfirsti(innerrel->relids)); - } /* need to flatten the relids list */ joinrel->relids = intAppend(outerrelids, innerrelids); @@ -330,10 +328,8 @@ match_unsorted_outer(RelOptInfo *joinrel, outerpath_ordering = outerpath->pathorder; if (outerpath_ordering) - { xmergeinfo = match_order_mergeinfo(outerpath_ordering, - mergeinfo_list); - } + mergeinfo_list); if (xmergeinfo) clauses = xmergeinfo->jmethod.clauses; @@ -344,12 +340,12 @@ match_unsorted_outer(RelOptInfo *joinrel, List *clauses = xmergeinfo->jmethod.clauses; matchedJoinKeys = match_pathkeys_joinkeys(outerpath->pathkeys, - jmkeys, - clauses, - OUTER, - &matchedJoinClauses); - merge_pathkeys = new_join_pathkeys(outerpath->pathkeys, - joinrel->targetlist, clauses); + jmkeys, + clauses, + OUTER, + &matchedJoinClauses); + merge_pathkeys = new_join_pathkeys(outerpath->pathkeys, + joinrel->targetlist, clauses); } else merge_pathkeys = outerpath->pathkeys; @@ -434,8 +430,7 @@ match_unsorted_outer(RelOptInfo *joinrel, * found, and * 2. sorting the cheapest outer path is cheaper than using an ordered * but unsorted outer path(as was considered in - * (match-unsorted-outer)), - * then this merge path is considered. + * (match-unsorted-outer)), then this merge path is considered. * * 'joinrel' is the join result relation * 'outerrel' is the outer join relation |