Remove regression in function.
authorBruce Momjian
Tue, 23 Dec 1997 03:27:23 +0000 (03:27 +0000)
committerBruce Momjian
Tue, 23 Dec 1997 03:27:23 +0000 (03:27 +0000)
src/backend/optimizer/path/prune.c

index 26bd559696360fdb0154976b82ea609941e2c072..f7ff4e206c08ad381b155ab408a4f949a665542d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.7 1997/12/21 05:18:21 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.8 1997/12/23 03:27:23 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -210,22 +210,30 @@ prune_oldrels(List *old_rels)
 {
    Rel        *rel;
    List       *joininfo_list,
-              *xjoininfo;
+              *xjoininfo,
+              *i,
+              *temp_list = NIL;
 
-   if (old_rels == NIL)
-       return (NIL);
-
-   rel = (Rel *) lfirst(old_rels);
-   joininfo_list = rel->joininfo;
-   if (joininfo_list == NIL)
-       return (lcons(rel, prune_oldrels(lnext(old_rels))));
-
-   foreach(xjoininfo, joininfo_list)
+   foreach(i, old_rels)
    {
-       JInfo      *joininfo = (JInfo *) lfirst(xjoininfo);
+       rel = (Rel *) lfirst(i);
+       joininfo_list = rel->joininfo;
 
-       if (!joininfo->inactive)
-           return (lcons(rel, prune_oldrels(lnext(old_rels))));
+       if (joininfo_list == NIL)
+           temp_list = lcons(rel, temp_list);
+       else
+       {
+           foreach(xjoininfo, joininfo_list)
+           {
+               JInfo      *joininfo = (JInfo *) lfirst(xjoininfo);
+   
+               if (!joininfo->inactive)
+               {
+                   temp_list = lcons(rel, temp_list);
+                   break;
+               }
+           }
+       }
    }
-   return (prune_oldrels(lnext(old_rels)));
+   return temp_list;       
 }