-
- Downloads
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.
Showing
- src/backend/nodes/copyfuncs.c 5 additions, 1 deletionsrc/backend/nodes/copyfuncs.c
- src/backend/nodes/outfuncs.c 4 additions, 1 deletionsrc/backend/nodes/outfuncs.c
- src/backend/optimizer/path/costsize.c 62 additions, 13 deletionssrc/backend/optimizer/path/costsize.c
- src/backend/optimizer/path/equivclass.c 155 additions, 40 deletionssrc/backend/optimizer/path/equivclass.c
- src/backend/optimizer/prep/prepunion.c 4 additions, 1 deletionsrc/backend/optimizer/prep/prepunion.c
- src/backend/optimizer/util/restrictinfo.c 4 additions, 1 deletionsrc/backend/optimizer/util/restrictinfo.c
- src/backend/utils/adt/selfuncs.c 26 additions, 5 deletionssrc/backend/utils/adt/selfuncs.c
- src/include/nodes/relation.h 23 additions, 1 deletionsrc/include/nodes/relation.h
- src/include/utils/selfuncs.h 2 additions, 2 deletionssrc/include/utils/selfuncs.h
Loading
Please register or sign in to comment