*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.18 1999/02/04 01:46:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.19 1999/02/04 19:20:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
List *i = NIL;
List *result = NIL;
- foreach(i, other_rels)
+ foreach(r1, other_rels)
{
- RelOptInfo *other_rel = (RelOptInfo *) lfirst(i);
+ RelOptInfo *other_rel = (RelOptInfo *) lfirst(r1);
if (same(rel->relids, other_rel->relids))
- {
+ /*
+ * This are on the same relations,
+ * so get the best of their pathlists.
+ */
rel->pathlist = add_pathlist(rel,
rel->pathlist,
other_rel->pathlist);
- }
else
result = nconc(result, lcons(other_rel, NIL));
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.17 1999/02/04 01:46:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.18 1999/02/04 19:20:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
List *
add_pathlist(RelOptInfo *parent_rel, List *unique_paths, List *new_paths)
{
- List *x;
- Path *new_path;
- Path *old_path;
- bool noOther;
+ List *p1;
- foreach(x, new_paths)
+ foreach(p1, new_paths)
{
- new_path = (Path *) lfirst(x);
+ Path *new_path = (Path *) lfirst(p1);
+ Path *old_path;
+ bool noOther;
+
+ /* Is this new path already in unique_paths? */
if (member(new_path, unique_paths))
continue;
+
+ /* Find best matching path */
old_path = better_path(new_path, unique_paths, &noOther);
if (noOther)
{
- /* Is a brand new path. */
+ /* This is a brand new path. */
new_path->parent = parent_rel;
unique_paths = lcons(new_path, unique_paths);
}