Upgrade planner and executor to allow multiple hash keys for a hash join,
instead of only one. This should speed up planning (only one hash path to consider for a given pair of relations) as well as allow more effective hashing, when there are multiple hashable joinclauses.
Showing
- src/backend/executor/nodeHash.c 52 additions, 31 deletionssrc/backend/executor/nodeHash.c
- src/backend/executor/nodeHashjoin.c 20 additions, 12 deletionssrc/backend/executor/nodeHashjoin.c
- src/backend/nodes/copyfuncs.c 3 additions, 4 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/outfuncs.c 2 additions, 3 deletionssrc/backend/nodes/outfuncs.c
- src/backend/optimizer/path/costsize.c 48 additions, 36 deletionssrc/backend/optimizer/path/costsize.c
- src/backend/optimizer/path/joinpath.c 19 additions, 11 deletionssrc/backend/optimizer/path/joinpath.c
- src/backend/optimizer/plan/createplan.c 16 additions, 14 deletionssrc/backend/optimizer/plan/createplan.c
- src/backend/optimizer/plan/subselect.c 2 additions, 2 deletionssrc/backend/optimizer/plan/subselect.c
- src/backend/optimizer/util/pathnode.c 2 additions, 2 deletionssrc/backend/optimizer/util/pathnode.c
- src/include/executor/hashjoin.h 7 additions, 6 deletionssrc/include/executor/hashjoin.h
- src/include/executor/nodeHash.h 3 additions, 3 deletionssrc/include/executor/nodeHash.h
- src/include/nodes/execnodes.h 5 additions, 3 deletionssrc/include/nodes/execnodes.h
- src/include/nodes/plannodes.h 2 additions, 3 deletionssrc/include/nodes/plannodes.h
- src/include/nodes/relation.h 1 addition, 3 deletionssrc/include/nodes/relation.h
Loading
Please register or sign in to comment