Change the division of labor between grouping_planner and query_planner

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 4e5fbb34b361102df41642a6ed9676b8b6a1e75f
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2005-08-27T22:13:44Z
Releases: 8.1.0
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.

Files