aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/path/joinpath.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-02-22 05:26:58 +0000
committerBruce Momjian <bruce@momjian.us>1999-02-22 05:26:58 +0000
commit1ed5cbbfd847f0011a6fe3670deb75b1a7407f61 (patch)
tree01c424ce1005bbeef3a947a6b6c6ec2cfe5a464f /src/backend/optimizer/path/joinpath.c
parent47dd11bdd034a8afeab5e9a3ed12ddbebb475d25 (diff)
downloadpostgresql-1ed5cbbfd847f0011a6fe3670deb75b1a7407f61.tar.gz
postgresql-1ed5cbbfd847f0011a6fe3670deb75b1a7407f61.zip
Final optimizer cleanups.
Diffstat (limited to 'src/backend/optimizer/path/joinpath.c')
-rw-r--r--src/backend/optimizer/path/joinpath.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c
index 95907f40729..47668a69b81 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.31 1999/02/21 01:55:02 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.32 1999/02/22 05:26:20 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -104,7 +104,8 @@ update_rels_pathlist_for_joins(Query *root, List *joinrels)
lfirsti(innerrel->relids));
/* need to flatten the relids list */
- joinrel->relids = intAppend(outerrelids, innerrelids);
+ joinrel->relids = nconc(listCopy(outerrelids),
+ listCopy(innerrelids));
/*
* 1. Consider mergejoin paths where both relations must be
@@ -213,11 +214,11 @@ sort_inner_and_outer(RelOptInfo *joinrel,
{
xmergeinfo = (MergeInfo *) lfirst(i);
- outerkeys = extract_path_keys(xmergeinfo->jmethod.jmkeys,
+ outerkeys = make_pathkeys_from_joinkeys(xmergeinfo->jmethod.jmkeys,
outerrel->targetlist,
OUTER);
- innerkeys = extract_path_keys(xmergeinfo->jmethod.jmkeys,
+ innerkeys = make_pathkeys_from_joinkeys(xmergeinfo->jmethod.jmkeys,
innerrel->targetlist,
INNER);
@@ -352,7 +353,7 @@ match_unsorted_outer(RelOptInfo *joinrel,
innerrel->width, false))));
if (!path_is_cheaper_than_sort)
{
- varkeys = extract_path_keys(matchedJoinKeys,
+ varkeys = make_pathkeys_from_joinkeys(matchedJoinKeys,
innerrel->targetlist,
INNER);
}
@@ -473,7 +474,7 @@ match_unsorted_inner(RelOptInfo *joinrel,
if (temp2)
{
- List *outerkeys = extract_path_keys(matchedJoinKeys,
+ List *outerkeys = make_pathkeys_from_joinkeys(matchedJoinKeys,
outerrel->targetlist,
OUTER);
List *merge_pathkeys = new_join_pathkeys(outerkeys,
@@ -551,10 +552,12 @@ hash_inner_and_outer(RelOptInfo *joinrel,
foreach(i, hashinfo_list)
{
xhashinfo = (HashInfo *) lfirst(i);
- outerkeys = extract_path_keys(((JoinMethod *) xhashinfo)->jmkeys,
+ outerkeys = make_pathkeys_from_joinkeys(
+ ((JoinMethod *) xhashinfo)->jmkeys,
outerrel->targetlist,
OUTER);
- innerkeys = extract_path_keys(((JoinMethod *) xhashinfo)->jmkeys,
+ innerkeys = make_pathkeys_from_joinkeys(
+ ((JoinMethod *) xhashinfo)->jmkeys,
innerrel->targetlist,
INNER);
hash_pathkeys = new_join_pathkeys(outerkeys,