]> granicus.if.org Git - postgresql/commit
Put back planner's ability to cache the results of mergejoinscansel(),
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 22 Jan 2007 20:00:40 +0000 (20:00 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 22 Jan 2007 20:00:40 +0000 (20:00 +0000)
commit4f06c688c7b4726ac9f5279d4a9f32408eec5356
tree6bf75e7cdf88035988d4bf414e56889ea00d87b1
parent45e07369383ff1631dea76cae6d222c2f16ad70e
Put back planner's ability to cache the results of mergejoinscansel(),
which I had removed in the first cut of the EquivalenceClass rewrite to
simplify that patch a little.  But it's still important --- in a four-way
join problem mergejoinscansel() was eating about 40% of the planning time
according to gprof.  Also, improve the EquivalenceClass code to re-use
join RestrictInfos rather than generating fresh ones for each join
considered.  This saves some memory space but more importantly improves
the effectiveness of caching planning info in RestrictInfos.
src/backend/nodes/copyfuncs.c
src/backend/nodes/outfuncs.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/path/equivclass.c
src/backend/optimizer/prep/prepunion.c
src/backend/optimizer/util/restrictinfo.c
src/backend/utils/adt/selfuncs.c
src/include/nodes/relation.h
src/include/utils/selfuncs.h