aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/path/joinrels.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/path/joinrels.c')
-rw-r--r--src/backend/optimizer/path/joinrels.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/backend/optimizer/path/joinrels.c b/src/backend/optimizer/path/joinrels.c
index f51e492eca1..f4f2d779b0a 100644
--- a/src/backend/optimizer/path/joinrels.c
+++ b/src/backend/optimizer/path/joinrels.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/joinrels.c,v 1.74 2005/06/09 04:18:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/joinrels.c,v 1.75 2005/07/28 22:27:00 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -44,7 +44,6 @@ make_rels_by_joins(PlannerInfo *root, int level, List **joinrels)
{
List *result_rels = NIL;
List *new_rels;
- ListCell *nr;
ListCell *r;
int k;
@@ -121,13 +120,7 @@ make_rels_by_joins(PlannerInfo *root, int level, List **joinrels)
* for subsequent passes, do not enter the same RelOptInfo into
* our output list multiple times.
*/
- foreach(nr, new_rels)
- {
- RelOptInfo *jrel = (RelOptInfo *) lfirst(nr);
-
- if (!list_member_ptr(result_rels, jrel))
- result_rels = lcons(jrel, result_rels);
- }
+ result_rels = list_concat_unique_ptr(result_rels, new_rels);
}
/*
@@ -182,8 +175,9 @@ make_rels_by_joins(PlannerInfo *root, int level, List **joinrels)
jrel = make_join_rel(root, old_rel, new_rel,
JOIN_INNER);
/* Avoid making duplicate entries ... */
- if (jrel && !list_member_ptr(result_rels, jrel))
- result_rels = lcons(jrel, result_rels);
+ if (jrel)
+ result_rels = list_append_unique_ptr(result_rels,
+ jrel);
}
}
}
@@ -224,13 +218,7 @@ make_rels_by_joins(PlannerInfo *root, int level, List **joinrels)
old_rel,
other_rels);
- foreach(nr, new_rels)
- {
- RelOptInfo *jrel = (RelOptInfo *) lfirst(nr);
-
- if (!list_member_ptr(result_rels, jrel))
- result_rels = lcons(jrel, result_rels);
- }
+ result_rels = list_concat_unique_ptr(result_rels, new_rels);
}
/*----------