mirror of
https://github.com/postgres/postgres.git
synced 2025-11-25 12:03:53 +03:00
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
This commit is contained in:
@@ -182,11 +182,13 @@ extern PathKeysComparison compare_pathkeys(List *keys1, List *keys2);
|
||||
extern bool pathkeys_contained_in(List *keys1, List *keys2);
|
||||
extern Path *get_cheapest_path_for_pathkeys(List *paths, List *pathkeys,
|
||||
Relids required_outer,
|
||||
CostSelector cost_criterion);
|
||||
CostSelector cost_criterion,
|
||||
bool require_parallel_safe);
|
||||
extern Path *get_cheapest_fractional_path_for_pathkeys(List *paths,
|
||||
List *pathkeys,
|
||||
Relids required_outer,
|
||||
double fraction);
|
||||
extern Path *get_cheapest_parallel_safe_total_inner(List *paths);
|
||||
extern List *build_index_pathkeys(PlannerInfo *root, IndexOptInfo *index,
|
||||
ScanDirection scandir);
|
||||
extern List *build_expression_pathkey(PlannerInfo *root, Expr *expr,
|
||||
|
||||
Reference in New Issue
Block a user