postgresql/src/include/optimizer
Tom Lane 835bb975d8 Restructure building of join relation targetlists so that a join plan
node emits only those vars that are actually needed above it in the
plan tree.  (There were comments in the code suggesting that this was
done at some point in the dim past, but for a long time we have just
made join nodes emit everything that either input emitted.)  Aside from
being marginally more efficient, this fixes the problem noted by Peter
Eisentraut where a join above an IN-implemented-as-join might fail,
because the subplan targetlist constructed in the latter case didn't
meet the expectation of including everything.
Along the way, fix some places that were O(N^2) in the targetlist
length.  This is not all the trouble spots for wide queries by any
means, but it's a step forward.
2003-06-29 23:05:05 +00:00
..
clauses.h Back out array mega-patch. 2003-06-25 21:30:34 +00:00
cost.h Add missing DLLIMPORT for cpu_index_tuple_cost to 2003-06-11 15:01:15 +00:00
geqo_copy.h Update copyright to 2002. 2002-06-20 20:29:54 +00:00
geqo_gene.h Update copyright to 2002. 2002-06-20 20:29:54 +00:00
geqo_misc.h First phase of implementing hash-based grouping/aggregation. An AGG plan 2002-11-06 00:00:45 +00:00
geqo_mutation.h Update copyright to 2002. 2002-06-20 20:29:54 +00:00
geqo_pool.h Update copyright to 2002. 2002-06-20 20:29:54 +00:00
geqo_random.h Update copyright to 2002. 2002-06-20 20:29:54 +00:00
geqo_recombination.h Update copyright to 2002. 2002-06-20 20:29:54 +00:00
geqo_selection.h Update copyright to 2002. 2002-06-20 20:29:54 +00:00
geqo.h Fix GEQO to work again in CVS tip, by being more careful about memory 2002-12-16 21:30:30 +00:00
joininfo.h Modify planner's implied-equality-deduction code so that when a set 2003-01-24 03:58:44 +00:00
pathnode.h Teach planner how to propagate pathkeys from sub-SELECTs in FROM up to 2003-02-15 20:12:41 +00:00
paths.h Cause CHAR(n) to TEXT or VARCHAR conversion to automatically strip trailing 2003-05-26 00:11:29 +00:00
plancat.h Restructure building of join relation targetlists so that a join plan 2003-06-29 23:05:05 +00:00
planmain.h Restructure building of join relation targetlists so that a join plan 2003-06-29 23:05:05 +00:00
planner.h Restructure parsetree representation of DECLARE CURSOR: now it's a 2003-03-10 03:53:52 +00:00
prep.h Adjust subquery qual pushdown rules so that we can push down a qual 2003-04-24 23:43:09 +00:00
restrictinfo.h Adjust nestloop-with-inner-indexscan plan generation so that we catch 2003-06-15 22:51:45 +00:00
subselect.h Implement outer-level aggregates to conform to the SQL spec, with 2003-06-06 15:04:03 +00:00
tlist.h Restructure building of join relation targetlists so that a join plan 2003-06-29 23:05:05 +00:00
var.h Implement outer-level aggregates to conform to the SQL spec, with 2003-06-06 15:04:03 +00:00