|
7 | 7 | * |
8 | 8 | * |
9 | 9 | * 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 $ |
11 | 11 | * |
12 | 12 | *------------------------------------------------------------------------- |
13 | 13 | */ |
@@ -210,22 +210,30 @@ prune_oldrels(List *old_rels) |
210 | 210 | { |
211 | 211 | Rel*rel; |
212 | 212 | List*joininfo_list, |
213 | | -*xjoininfo; |
| 213 | +*xjoininfo, |
| 214 | +*i, |
| 215 | +*temp_list=NIL; |
214 | 216 |
|
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) |
224 | 218 | { |
225 | | -JInfo*joininfo= (JInfo*)lfirst(xjoininfo); |
| 219 | +rel= (Rel*)lfirst(i); |
| 220 | +joininfo_list=rel->joininfo; |
226 | 221 |
|
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 | +} |
229 | 237 | } |
230 | | -return(prune_oldrels(lnext(old_rels))); |
| 238 | +returntemp_list; |
231 | 239 | } |