Log Message: ----------- Teach planner how to rearrange join order for some classes of OUTER JOIN. Per my recent proposal. I ended up basing the implementation on the existing mechanism for enforcing valid join orders of IN joins --- the rules for valid outer-join orders are somewhat similar.
Modified Files:
--------------
pgsql/doc/src/sgml:
config.sgml (r1.38 -> r1.39)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/config.sgml.diff?r1=1.38&r2=1.39)
perform.sgml (r1.54 -> r1.55)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/perform.sgml.diff?r1=1.54&r2=1.55)
pgsql/src/backend/nodes:
copyfuncs.c (r1.322 -> r1.323)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.322&r2=1.323)
equalfuncs.c (r1.258 -> r1.259)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.258&r2=1.259)
outfuncs.c (r1.264 -> r1.265)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c.diff?r1=1.264&r2=1.265)
pgsql/src/backend/optimizer:
README (r1.33 -> r1.34)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/README.diff?r1=1.33&r2=1.34)
pgsql/src/backend/optimizer/geqo:
geqo_eval.c (r1.78 -> r1.79)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/geqo/geqo_eval.c.diff?r1=1.78&r2=1.79)
pgsql/src/backend/optimizer/path:
allpaths.c (r1.138 -> r1.139)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/allpaths.c.diff?r1=1.138&r2=1.139)
joinrels.c (r1.77 -> r1.78)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/joinrels.c.diff?r1=1.77&r2=1.78)
pgsql/src/backend/optimizer/plan:
initsplan.c (r1.112 -> r1.113)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/initsplan.c.diff?r1=1.112&r2=1.113)
planmain.c (r1.90 -> r1.91)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planmain.c.diff?r1=1.90&r2=1.91)
planner.c (r1.195 -> r1.196)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planner.c.diff?r1=1.195&r2=1.196)
pgsql/src/backend/optimizer/prep:
prepjointree.c (r1.32 -> r1.33)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepjointree.c.diff?r1=1.32&r2=1.33)
pgsql/src/backend/optimizer/util:
clauses.c (r1.203 -> r1.204)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.203&r2=1.204)
relnode.c (r1.73 -> r1.74)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/relnode.c.diff?r1=1.73&r2=1.74)
pgsql/src/backend/utils/misc:
guc.c (r1.301 -> r1.302)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/guc.c.diff?r1=1.301&r2=1.302)
pgsql/src/include/nodes:
nodes.h (r1.178 -> r1.179)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodes.h.diff?r1=1.178&r2=1.179)
primnodes.h (r1.109 -> r1.110)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/primnodes.h.diff?r1=1.109&r2=1.110)
relation.h (r1.121 -> r1.122)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/relation.h.diff?r1=1.121&r2=1.122)
pgsql/src/include/optimizer:
clauses.h (r1.80 -> r1.81)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/clauses.h.diff?r1=1.80&r2=1.81)
paths.h (r1.89 -> r1.90)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/paths.h.diff?r1=1.89&r2=1.90)
planmain.h (r1.90 -> r1.91)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/planmain.h.diff?r1=1.90&r2=1.91)
prep.h (r1.52 -> r1.53)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/prep.h.diff?r1=1.52&r2=1.53)
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq
