pgsql: Change the division of labor between grouping_planner and

From: tgl(at)svr1(dot)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Change the division of labor between grouping_planner and
Date: 2005-08-27 22:13:44
Message-ID: 20050827221344.4B243D7216@svr1.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2005-08-27 22:37:00 pgsql: cost_agg really ought to charge something per output tuple; else
Previous Message Tom Lane 2005-08-27 18:44:03 pgsql: Windows needs WSAStartup() before getaddrinfo() will work.