Log Message: ----------- 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. Modified Files: -------------- pgsql/src/backend/nodes: outfuncs.c (r1.259 -> r1.260) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c.diff?r1=1.259&r2=1.260) pgsql/src/backend/optimizer/path: pathkeys.c (r1.71 -> r1.72) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/pathkeys.c.diff?r1=1.71&r2=1.72) pgsql/src/backend/optimizer/plan: planmain.c (r1.86 -> r1.87) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planmain.c.diff?r1=1.86&r2=1.87) planner.c (r1.191 -> r1.192) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planner.c.diff?r1=1.191&r2=1.192) pgsql/src/include/nodes: relation.h (r1.117 -> r1.118) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/relation.h.diff?r1=1.117&r2=1.118) pgsql/src/include/optimizer: paths.h (r1.86 -> r1.87) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/paths.h.diff?r1=1.86&r2=1.87) planmain.h (r1.87 -> r1.88) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/planmain.h.diff?r1=1.87&r2=1.88)
pgsql-committers by date:
Соглашаюсь с условиями обработки персональных данных