OSDN Git Service

Repair planning bugs caused by my misguided removal of restrictinfo link
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 7 Feb 2000 04:41:04 +0000 (04:41 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 7 Feb 2000 04:41:04 +0000 (04:41 +0000)
commitd8733ce674f62f0e13cfc97d0340b43e1906f458
treefc210768a24a14d07b9bffb9dd629f400bb7cc8f
parent2bda7a44067f22f73cd7937f6c88efd1bbe97638
Repair planning bugs caused by my misguided removal of restrictinfo link
fields in JoinPaths --- turns out that we do need that after all :-(.
Also, rearrange planner so that only one RelOptInfo is created for a
particular set of joined base relations, no matter how many different
subsets of relations it can be created from.  This saves memory and
processing time compared to the old method of making a bunch of RelOptInfos
and then removing the duplicates.  Clean up the jointree iteration logic;
not sure if it's better, but I sure find it more readable and plausible
now, particularly for the case of 'bushy plans'.
24 files changed:
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/freefuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/README
src/backend/optimizer/geqo/geqo_eval.c
src/backend/optimizer/geqo/geqo_misc.c
src/backend/optimizer/path/Makefile
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/path/joinpath.c
src/backend/optimizer/path/joinrels.c
src/backend/optimizer/path/prune.c [deleted file]
src/backend/optimizer/path/tidpath.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/initsplan.c
src/backend/optimizer/plan/planmain.c
src/backend/optimizer/util/pathnode.c
src/backend/optimizer/util/relnode.c
src/include/nodes/relation.h
src/include/optimizer/cost.h
src/include/optimizer/pathnode.h
src/include/optimizer/paths.h