pgsql: Rework join-removal logic as per recent discussion.

Started by Tom Laneover 16 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Log Message:
-----------
Rework join-removal logic as per recent discussion. In particular this
fixes things so that it works for cases where nested removals are possible.
The overhead of the optimization should be significantly less, as well.

Modified Files:
--------------
pgsql/src/backend/nodes:
outfuncs.c (r1.383 -> r1.384)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.383&r2=1.384)
pgsql/src/backend/optimizer:
README (r1.52 -> r1.53)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/README?r1=1.52&r2=1.53)
pgsql/src/backend/optimizer/path:
allpaths.c (r1.193 -> r1.194)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/allpaths.c?r1=1.193&r2=1.194)
joinpath.c (r1.131 -> r1.132)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/joinpath.c?r1=1.131&r2=1.132)
pgsql/src/backend/optimizer/plan:
Makefile (r1.15 -> r1.16)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/Makefile?r1=1.15&r2=1.16)
createplan.c (r1.273 -> r1.274)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/createplan.c?r1=1.273&r2=1.274)
planmain.c (r1.117 -> r1.118)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planmain.c?r1=1.117&r2=1.118)
pgsql/src/backend/optimizer/util:
pathnode.c (r1.157 -> r1.158)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/pathnode.c?r1=1.157&r2=1.158)
placeholder.c (r1.6 -> r1.7)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/placeholder.c?r1=1.6&r2=1.7)
pgsql/src/include/nodes:
nodes.h (r1.233 -> r1.234)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodes.h?r1=1.233&r2=1.234)
relation.h (r1.184 -> r1.185)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/relation.h?r1=1.184&r2=1.185)
pgsql/src/include/optimizer:
pathnode.h (r1.83 -> r1.84)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/pathnode.h?r1=1.83&r2=1.84)
placeholder.h (r1.4 -> r1.5)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/placeholder.h?r1=1.4&r2=1.5)
planmain.h (r1.126 -> r1.127)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/planmain.h?r1=1.126&r2=1.127)
pgsql/src/test/regress/expected:
join.out (r1.44 -> r1.45)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/join.out?r1=1.44&r2=1.45)
pgsql/src/test/regress/sql:
join.sql (r1.33 -> r1.34)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/join.sql?r1=1.33&r2=1.34)

Added Files:
-----------
pgsql/src/backend/optimizer/plan:
analyzejoins.c (r1.1)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/analyzejoins.c?rev=1.1&content-type=text/x-cvsweb-markup)