mirror of
https://github.com/postgres/postgres.git
synced 2026-06-29 20:38:41 -04:00
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. |
||
|---|---|---|
| .. | ||
| clauses.h | ||
| cost.h | ||
| geqo.h | ||
| geqo_copy.h | ||
| geqo_gene.h | ||
| geqo_misc.h | ||
| geqo_mutation.h | ||
| geqo_pool.h | ||
| geqo_random.h | ||
| geqo_recombination.h | ||
| geqo_selection.h | ||
| joininfo.h | ||
| pathnode.h | ||
| paths.h | ||
| placeholder.h | ||
| plancat.h | ||
| planmain.h | ||
| planner.h | ||
| predtest.h | ||
| prep.h | ||
| restrictinfo.h | ||
| subselect.h | ||
| tlist.h | ||
| var.h | ||