• T
    Restructure planning code so that preprocessing of targetlist and quals · 3ee8f7e2
    Tom Lane 提交于
    to simplify constant expressions and expand SubLink nodes into SubPlans
    is done in a separate routine subquery_planner() that calls union_planner().
    We formerly did most of this work in query_planner(), but that's the
    wrong place because it may never see the real targetlist.  Splitting
    union_planner into two routines also allows us to avoid redundant work
    when union_planner is invoked recursively for UNION and inheritance
    cases.  Upshot is that it is now possible to do something like
    select float8(count(*)) / (select count(*) from int4_tbl)  from int4_tbl
    group by f1;
    which has never worked before.
    3ee8f7e2
clauses.c 48.8 KB