• T
    Reimplement planner's handling of MIN/MAX aggregate optimization (again). · 8df08c84
    Tom Lane 提交于
    Instead of playing cute games with pathkeys, just build a direct
    representation of the intended sub-select, and feed it through
    query_planner to get a Path for the index access.  This is a bit slower
    than 9.1's previous method, since we'll duplicate most of the overhead of
    query_planner; but since the whole optimization only applies to rather
    simple single-table queries, that probably won't be much of a problem in
    practice.  The advantage is that we get to do the right thing when there's
    a partial index that needs the implicit IS NOT NULL clause to be usable.
    Also, although this makes planagg.c be a bit more closely tied to the
    ordering of operations in grouping_planner, we can get rid of some coupling
    to lower-level parts of the planner.  Per complaint from Marti Raudsepp.
    8df08c84
indxpath.c 99.6 KB