summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/path/joinpath.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-02-19 05:18:06 +0000
committerBruce Momjian <bruce@momjian.us>1999-02-19 05:18:06 +0000
commit612b8434e40edc299e38bd6e4d7ac07183513118 (patch)
tree1e6627371e408c408e80126035e2014584cd8a38 /src/backend/optimizer/path/joinpath.c
parent8ab72a38df82a863f787c65a4b8998893a946377 (diff)
downloadpostgresql-612b8434e40edc299e38bd6e4d7ac07183513118.tar.gz
optimizer cleanup
Diffstat (limited to 'src/backend/optimizer/path/joinpath.c')
-rw-r--r--src/backend/optimizer/path/joinpath.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c
index 4846dfba50..6a1bad07b7 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.29 1999/02/18 19:58:52 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.30 1999/02/19 05:18:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -79,8 +79,8 @@ update_rels_pathlist_for_joins(Query *root, List *joinrels)
List *pathlist = NIL;
/* flatten out relids later in this function */
- innerrelids = lsecond(joinrel->relids);
outerrelids = lfirst(joinrel->relids);
+ innerrelids = lsecond(joinrel->relids);
/*
* base relation id is an integer and join relation relid is a
@@ -123,7 +123,7 @@ update_rels_pathlist_for_joins(Query *root, List *joinrels)
outerrel,
innerrel,
outerrel->pathlist,
- (Path *) innerrel->cheapestpath,
+ innerrel->cheapestpath,
bestinnerjoin,
mergeinfo_list));
@@ -176,7 +176,6 @@ best_innerjoin(List *join_paths, Relids outer_relids)
&& ((cheapest == NULL ||
path_is_cheaper((Path *) lfirst(join_path), cheapest))))
{
-
cheapest = (Path *) lfirst(join_path);
}
}
@@ -293,7 +292,7 @@ match_unsorted_outer(RelOptInfo *joinrel,
List *clauses = NIL;
List *matchedJoinKeys = NIL;
List *matchedJoinClauses = NIL;
- MergeInfo *xmergeinfo = (MergeInfo *) NULL;
+ MergeInfo *xmergeinfo = NULL;
outerpath = (Path *) lfirst(i);
@@ -309,9 +308,8 @@ match_unsorted_outer(RelOptInfo *joinrel,
if (clauses)
{
List *jmkeys = xmergeinfo->jmethod.jmkeys;
- List *clauses = xmergeinfo->jmethod.clauses;
- matchedJoinKeys = match_pathkeys_joinkeys(outerpath->pathkeys,
+ matchedJoinKeys = order_joinkeys_by_pathkeys(outerpath->pathkeys,
jmkeys,
clauses,
OUTER,
@@ -339,19 +337,18 @@ match_unsorted_outer(RelOptInfo *joinrel,
{
bool path_is_cheaper_than_sort;
List *varkeys = NIL;
- Path *mergeinnerpath = match_paths_joinkeys(matchedJoinKeys,
- outerpath_ordering,
- innerrel->pathlist,
- INNER);
+ Path *mergeinnerpath = get_cheapest_path_for_joinkeys(
+ matchedJoinKeys,
+ outerpath_ordering,
+ innerrel->pathlist,
+ INNER);
/* Should we use the mergeinner, or sort the cheapest inner? */
path_is_cheaper_than_sort = (bool) (mergeinnerpath &&
- (mergeinnerpath->path_cost <
- (cheapest_inner->path_cost +
- cost_sort(matchedJoinKeys,
- innerrel->size,
- innerrel->width,
- false))));
+ (mergeinnerpath->path_cost <
+ (cheapest_inner->path_cost +
+ cost_sort(matchedJoinKeys, innerrel->size,
+ innerrel->width, false))));
if (!path_is_cheaper_than_sort)
{
varkeys = extract_path_keys(matchedJoinKeys,
@@ -451,11 +448,10 @@ match_unsorted_inner(RelOptInfo *joinrel,
if (clauses)
{
List *jmkeys = xmergeinfo->jmethod.jmkeys;
- List *cls = xmergeinfo->jmethod.clauses;
- matchedJoinKeys = match_pathkeys_joinkeys(innerpath->pathkeys,
+ matchedJoinKeys = order_joinkeys_by_pathkeys(innerpath->pathkeys,
jmkeys,
- cls,
+ clauses,
INNER,
&matchedJoinClauses);
}