|
|
@ -7,7 +7,7 @@ |
|
|
|
* |
|
|
|
* |
|
|
|
* |
|
|
|
* |
|
|
|
* IDENTIFICATION |
|
|
|
* IDENTIFICATION |
|
|
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.18 1998/01/15 18:59:53 momjian Exp $ |
|
|
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.19 1998/02/13 03:39:26 vadim Exp $ |
|
|
|
* |
|
|
|
* |
|
|
|
*------------------------------------------------------------------------- |
|
|
|
*------------------------------------------------------------------------- |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -129,14 +129,14 @@ plan_union_queries(Query *parse) |
|
|
|
List *hold_unionClause = parse->unionClause; |
|
|
|
List *hold_unionClause = parse->unionClause; |
|
|
|
|
|
|
|
|
|
|
|
parse->unionClause = NIL; /* prevent recursion */ |
|
|
|
parse->unionClause = NIL; /* prevent recursion */ |
|
|
|
union_plans = lcons(planner(parse), NIL); |
|
|
|
union_plans = lcons(union_planner(parse), NIL); |
|
|
|
union_rts = lcons(parse->rtable, NIL); |
|
|
|
union_rts = lcons(parse->rtable, NIL); |
|
|
|
|
|
|
|
|
|
|
|
foreach(ulist, hold_unionClause) |
|
|
|
foreach(ulist, hold_unionClause) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Query *union_query = lfirst(ulist); |
|
|
|
Query *union_query = lfirst(ulist); |
|
|
|
|
|
|
|
|
|
|
|
union_plans = lappend(union_plans, planner(union_query)); |
|
|
|
union_plans = lappend(union_plans, union_planner(union_query)); |
|
|
|
union_rts = lappend(union_rts, union_query->rtable); |
|
|
|
union_rts = lappend(union_rts, union_query->rtable); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -159,7 +159,7 @@ plan_union_queries(Query *parse) |
|
|
|
* Recursion, but UNION only. |
|
|
|
* Recursion, but UNION only. |
|
|
|
* The last one is a UNION, so it will not come here in recursion, |
|
|
|
* The last one is a UNION, so it will not come here in recursion, |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
union_plans = lcons(planner(parse), NIL); |
|
|
|
union_plans = lcons(union_planner(parse), NIL); |
|
|
|
union_rts = lcons(parse->rtable, NIL); |
|
|
|
union_rts = lcons(parse->rtable, NIL); |
|
|
|
|
|
|
|
|
|
|
|
/* Append the remainging UNION ALLs */ |
|
|
|
/* Append the remainging UNION ALLs */ |
|
|
@ -167,7 +167,7 @@ plan_union_queries(Query *parse) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Query *unionall_query = lfirst(ulist); |
|
|
|
Query *unionall_query = lfirst(ulist); |
|
|
|
|
|
|
|
|
|
|
|
union_plans = lappend(union_plans, planner(unionall_query)); |
|
|
|
union_plans = lappend(union_plans, union_planner(unionall_query)); |
|
|
|
union_rts = lappend(union_rts, unionall_query->rtable); |
|
|
|
union_rts = lappend(union_rts, unionall_query->rtable); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -276,7 +276,7 @@ plan_inherit_query(List *relids, |
|
|
|
relid, |
|
|
|
relid, |
|
|
|
new_root); |
|
|
|
new_root); |
|
|
|
|
|
|
|
|
|
|
|
union_plans = lappend(union_plans, planner(new_root)); |
|
|
|
union_plans = lappend(union_plans, union_planner(new_root)); |
|
|
|
union_rtentries = lappend(union_rtentries, new_rt_entry); |
|
|
|
union_rtentries = lappend(union_rtentries, new_rt_entry); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|