pgsql: Restructure planner's handling of inheritance.
От | tgl@postgresql.org (Tom Lane) |
---|---|
Тема | pgsql: Restructure planner's handling of inheritance. |
Дата | |
Msg-id | 20060131213925.2A1869DC827@postgresql.org обсуждение исходный текст |
Список | 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)
В списке pgsql-committers по дате отправления:
Предыдущее
От: dpage@pgfoundry.org (User Dpage)Дата:
Сообщение: psqlodbc - psqlodbc: Tweak release notes
Следующее
От: tgl@postgresql.org (Tom Lane)Дата:
Сообщение: pgsql: Allow %TYPE to be used with SETOF, per gripe from Murat Tasan.