Skip to content

Commit e4bd912

Browse files
committed
Remove regression in function.
1 parent 3827555 commit e4bd912

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

src/backend/optimizer/path/prune.c

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.7 1997/12/21 05:18:21 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.8 1997/12/23 03:27:23 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -210,22 +210,30 @@ prune_oldrels(List *old_rels)
210210
{
211211
Rel *rel;
212212
List *joininfo_list,
213-
*xjoininfo;
213+
*xjoininfo,
214+
*i,
215+
*temp_list = NIL;
214216

215-
if (old_rels == NIL)
216-
return (NIL);
217-
218-
rel = (Rel *) lfirst(old_rels);
219-
joininfo_list = rel->joininfo;
220-
if (joininfo_list == NIL)
221-
return (lcons(rel, prune_oldrels(lnext(old_rels))));
222-
223-
foreach(xjoininfo, joininfo_list)
217+
foreach(i, old_rels)
224218
{
225-
JInfo *joininfo = (JInfo *) lfirst(xjoininfo);
219+
rel = (Rel *) lfirst(i);
220+
joininfo_list = rel->joininfo;
226221

227-
if (!joininfo->inactive)
228-
return (lcons(rel, prune_oldrels(lnext(old_rels))));
222+
if (joininfo_list == NIL)
223+
temp_list = lcons(rel, temp_list);
224+
else
225+
{
226+
foreach(xjoininfo, joininfo_list)
227+
{
228+
JInfo *joininfo = (JInfo *) lfirst(xjoininfo);
229+
230+
if (!joininfo->inactive)
231+
{
232+
temp_list = lcons(rel, temp_list);
233+
break;
234+
}
235+
}
236+
}
229237
}
230-
return (prune_oldrels(lnext(old_rels)));
238+
return temp_list;
231239
}

0 commit comments

Comments
 (0)