Preparatory refactoring for parallel merge join support.
authorRobert Haas <rhaas@postgresql.org>
Tue, 7 Mar 2017 15:33:29 +0000 (10:33 -0500)
committerRobert Haas <rhaas@postgresql.org>
Tue, 7 Mar 2017 15:33:29 +0000 (10:33 -0500)
commita71f10189dc10a2fe422158a2c9409e0f77c6b9e
tree7ac8d794996d36feca0816ad43a164db0f2f015f
parent655393a022bd653e2b48dbf20b69236981e35195
Preparatory refactoring for parallel merge join support.

Extract the logic used by hash_inner_and_outer into a separate
function, get_cheapest_parallel_safe_total_inner, so that it can
also be used to plan parallel merge joins.

Also, add a require_parallel_safe argument to the existing function
get_cheapest_path_for_pathkeys, because parallel merge join needs
to find the cheapest path for a given set of pathkeys that is
parallel-safe, not just the cheapest one overall.

Patch by me, reviewed by Dilip Kumar.

Discussion: http://postgr.es/m/CA+TgmoYOv+dFK0MWW6366dFj_xTnohQfoBDrHyB7d1oZhrgPjA@mail.gmail.com
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/joinpath.c
src/backend/optimizer/path/pathkeys.c
src/include/optimizer/paths.h