Commit ae12e252 authored by Bruce Momjian's avatar Bruce Momjian

Update optimizer comments.

parent 19cc38b2
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -64,16 +64,18 @@ prune_joinrel(RelOptInfo *rel, List *other_rels) ...@@ -64,16 +64,18 @@ prune_joinrel(RelOptInfo *rel, List *other_rels)
List *i = NIL; List *i = NIL;
List *result = 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)) 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 = add_pathlist(rel,
rel->pathlist, rel->pathlist,
other_rel->pathlist); other_rel->pathlist);
}
else else
result = nconc(result, lcons(other_rel, NIL)); result = nconc(result, lcons(other_rel, NIL));
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -101,21 +101,24 @@ set_cheapest(RelOptInfo *parent_rel, List *pathlist) ...@@ -101,21 +101,24 @@ set_cheapest(RelOptInfo *parent_rel, List *pathlist)
List * List *
add_pathlist(RelOptInfo *parent_rel, List *unique_paths, List *new_paths) add_pathlist(RelOptInfo *parent_rel, List *unique_paths, List *new_paths)
{ {
List *x; List *p1;
Path *new_path;
foreach(p1, new_paths)
{
Path *new_path = (Path *) lfirst(p1);
Path *old_path; Path *old_path;
bool noOther; bool noOther;
foreach(x, new_paths) /* Is this new path already in unique_paths? */
{
new_path = (Path *) lfirst(x);
if (member(new_path, unique_paths)) if (member(new_path, unique_paths))
continue; continue;
/* Find best matching path */
old_path = better_path(new_path, unique_paths, &noOther); old_path = better_path(new_path, unique_paths, &noOther);
if (noOther) if (noOther)
{ {
/* Is a brand new path. */ /* This is a brand new path. */
new_path->parent = parent_rel; new_path->parent = parent_rel;
unique_paths = lcons(new_path, unique_paths); unique_paths = lcons(new_path, unique_paths);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment