postgresql/src/include/optimizer
Tom Lane 8df08c8489 Reimplement planner's handling of MIN/MAX aggregate optimization (again).
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.
2011-03-22 00:34:31 -04:00
..
clauses.h Revise collation derivation method and expression-tree representation. 2011-03-19 20:30:08 -04:00
cost.h Implement an API to let foreign-data wrappers actually be functional. 2011-02-20 00:18:14 -05:00
geqo.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_copy.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_gene.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_misc.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_mutation.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_pool.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_random.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_recombination.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
geqo_selection.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
joininfo.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
pathnode.h Implement an API to let foreign-data wrappers actually be functional. 2011-02-20 00:18:14 -05:00
paths.h Reimplement planner's handling of MIN/MAX aggregate optimization (again). 2011-03-22 00:34:31 -04:00
placeholder.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
plancat.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
planmain.h Revise collation derivation method and expression-tree representation. 2011-03-19 20:30:08 -04:00
planner.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
predtest.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
prep.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
restrictinfo.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
subselect.h Per-column collation support 2011-02-08 23:04:18 +02:00
tlist.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
var.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00