postgresql/src/include/optimizer
Tom Lane 4e5fbb34b3 Change the division of labor between grouping_planner and query_planner
so that the latter estimates the number of groups that grouping will
produce.  This is needed because it is primarily query_planner that
makes the decision between fast-start and fast-finish plans, and in the
original coding it was unable to make more than a crude rule-of-thumb
choice when the query involved grouping.  This revision helps us make
saner choices for queries like SELECT ... GROUP BY ... LIMIT, as in a
recent example from Mark Kirkwood.  Also move the responsibility for
canonicalizing sort_pathkeys and group_pathkeys into query_planner;
this information has to be available anyway to support the first change,
and doing it this way lets us get rid of compare_noncanonical_pathkeys
entirely.
2005-08-27 22:13:44 +00:00
..
clauses.h Teach the planner to remove SubqueryScan nodes from the plan if they 2005-05-22 22:30:20 +00:00
cost.h enable_constraint_exclusion => constraint_exclusion 2005-08-22 17:35:03 +00:00
geqo.h Remove planner's private fields from Query struct, and put them into 2005-06-05 22:32:58 +00:00
geqo_copy.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
geqo_gene.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
geqo_misc.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
geqo_mutation.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
geqo_pool.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
geqo_random.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
geqo_recombination.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
geqo_selection.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
joininfo.h Simplify the planner's join clause management by storing join clauses 2005-06-09 04:19:00 +00:00
pathnode.h Remove planner's private fields from Query struct, and put them into 2005-06-05 22:32:58 +00:00
paths.h Change the division of labor between grouping_planner and query_planner 2005-08-27 22:13:44 +00:00
plancat.h Simple constraint exclusion. For now, only child tables of inheritance 2005-07-23 21:05:48 +00:00
planmain.h Change the division of labor between grouping_planner and query_planner 2005-08-27 22:13:44 +00:00
planner.h Remove planner's private fields from Query struct, and put them into 2005-06-05 22:32:58 +00:00
predtest.h Simple constraint exclusion. For now, only child tables of inheritance 2005-07-23 21:05:48 +00:00
prep.h If a LIMIT is applied to a UNION ALL query, plan each UNION arm as 2005-06-10 02:21:05 +00:00
restrictinfo.h Fix a bunch of bad interactions between partial indexes and the new 2005-07-28 20:26:22 +00:00
subselect.h Remove planner's private fields from Query struct, and put them into 2005-06-05 22:32:58 +00:00
tlist.h Merge Resdom nodes into TargetEntry nodes to simplify code and save a 2005-04-06 16:34:07 +00:00
var.h Remove planner's private fields from Query struct, and put them into 2005-06-05 22:32:58 +00:00