pgsql: Restructure planner's handling of inheritance.

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Restructure planner's handling of inheritance.
Date: 2006-01-31 21:39:25
Message-ID: 20060131213925.2A1869DC827@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Restructure planner's handling of inheritance. Rather than processing
inheritance trees on-the-fly, which pretty well constrained us to considering
only one way of planning inheritance, expand inheritance sets during the
planner prep phase, and build a side data structure that can be consulted
later to find which RTEs are members of which inheritance sets. As proof of
concept, use the data structure to plan joins against inheritance sets more
efficiently: we can now use indexes on the set members in inner-indexscan
joins. (The generated plans could be improved further, but it'll take some
executor changes.) This data structure will also support handling UNION ALL
subqueries in the same way as inheritance sets, but that aspect of it isn't
finished yet.

Modified Files:
--------------
pgsql/src/backend/nodes:
copyfuncs.c (r1.324 -> r1.325)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.324&r2=1.325)
equalfuncs.c (r1.260 -> r1.261)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.260&r2=1.261)
outfuncs.c (r1.266 -> r1.267)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c.diff?r1=1.266&r2=1.267)
pgsql/src/backend/optimizer/path:
allpaths.c (r1.139 -> r1.140)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/allpaths.c.diff?r1=1.139&r2=1.140)
joinpath.c (r1.98 -> r1.99)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/joinpath.c.diff?r1=1.98&r2=1.99)
pgsql/src/backend/optimizer/plan:
initsplan.c (r1.113 -> r1.114)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/initsplan.c.diff?r1=1.113&r2=1.114)
planmain.c (r1.91 -> r1.92)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planmain.c.diff?r1=1.91&r2=1.92)
planner.c (r1.196 -> r1.197)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planner.c.diff?r1=1.196&r2=1.197)
pgsql/src/backend/optimizer/prep:
prepjointree.c (r1.33 -> r1.34)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepjointree.c.diff?r1=1.33&r2=1.34)
prepunion.c (r1.128 -> r1.129)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepunion.c.diff?r1=1.128&r2=1.129)
pgsql/src/backend/optimizer/util:
clauses.c (r1.206 -> r1.207)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.206&r2=1.207)
plancat.c (r1.116 -> r1.117)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/plancat.c.diff?r1=1.116&r2=1.117)
relnode.c (r1.74 -> r1.75)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/relnode.c.diff?r1=1.74&r2=1.75)
pgsql/src/backend/rewrite:
rewriteManip.c (r1.95 -> r1.96)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteManip.c.diff?r1=1.95&r2=1.96)
pgsql/src/include/nodes:
nodes.h (r1.181 -> r1.182)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodes.h.diff?r1=1.181&r2=1.182)
relation.h (r1.122 -> r1.123)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/relation.h.diff?r1=1.122&r2=1.123)
pgsql/src/include/optimizer:
pathnode.h (r1.63 -> r1.64)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/pathnode.h.diff?r1=1.63&r2=1.64)
prep.h (r1.53 -> r1.54)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/prep.h.diff?r1=1.53&r2=1.54)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2006-01-31 22:40:03 pgsql: Allow %TYPE to be used with SETOF, per gripe from Murat Tasan.
Previous Message User Dpage 2006-01-31 13:39:30 psqlodbc - psqlodbc: Tweak release notes