Upgrade cost estimation for joins, per discussion with Bradley Baetz.
Try to model the effect of rescanning input tuples in mergejoins; account for JOIN_IN short-circuiting where appropriate. Also, recognize that mergejoin and hashjoin clauses may now be more than single operator calls, so we have to charge appropriate execution costs.
Showing
- src/backend/executor/nodeHashjoin.c 8 additions, 1 deletionsrc/backend/executor/nodeHashjoin.c
- src/backend/executor/nodeNestloop.c 5 additions, 1 deletionsrc/backend/executor/nodeNestloop.c
- src/backend/nodes/list.c 23 additions, 1 deletionsrc/backend/nodes/list.c
- src/backend/optimizer/path/costsize.c 301 additions, 139 deletionssrc/backend/optimizer/path/costsize.c
- src/backend/optimizer/path/joinpath.c 4 additions, 9 deletionssrc/backend/optimizer/path/joinpath.c
- src/backend/optimizer/util/pathnode.c 4 additions, 17 deletionssrc/backend/optimizer/util/pathnode.c
- src/backend/utils/adt/selfuncs.c 3 additions, 1 deletionsrc/backend/utils/adt/selfuncs.c
- src/include/nodes/pg_list.h 2 additions, 1 deletionsrc/include/nodes/pg_list.h
- src/include/optimizer/cost.h 4 additions, 13 deletionssrc/include/optimizer/cost.h
- src/test/regress/expected/subselect.out 4 additions, 4 deletionssrc/test/regress/expected/subselect.out
Loading
Please register or sign in to comment