Commit 5a65eacf authored by Alvaro Herrera's avatar Alvaro Herrera

Fix confusion in comments about generate_gather_paths

d2d8a229 introduced a new function generate_useful_gather_paths to
be used as a replacement for generate_gather_paths, but forgot to update
a couple of places that referenced the older function.

This is possibly not 100% complete (ref. create_ordered_paths), but it's
better than not changing anything.

Author: "Hou, Zhijie" <houzj.fnst@cn.fujitsu.com>
Reviewed-by: default avatarTomas Vondra <tomas.vondra@enterprisedb.com>
Discussion: https://postgr.es/m/4ce1d5116fe746a699a6d29858c6a39a@G08CNEXMBPEKD05.g08.fujitsu.local
parent 8deb6b38
......@@ -3019,10 +3019,11 @@ standard_join_search(PlannerInfo *root, int levels_needed, List *initial_rels)
join_search_one_level(root, lev);
/*
* Run generate_partitionwise_join_paths() and generate_gather_paths()
* for each just-processed joinrel. We could not do this earlier
* because both regular and partial paths can get added to a
* particular joinrel at multiple times within join_search_one_level.
* Run generate_partitionwise_join_paths() and
* generate_useful_gather_paths() for each just-processed joinrel. We
* could not do this earlier because both regular and partial paths
* can get added to a particular joinrel at multiple times within
* join_search_one_level.
*
* After that, we're done creating paths for the joinrel, so run
* set_cheapest().
......
......@@ -7212,14 +7212,14 @@ create_partial_grouping_paths(PlannerInfo *root,
* Generate Gather and Gather Merge paths for a grouping relation or partial
* grouping relation.
*
* generate_gather_paths does most of the work, but we also consider a special
* case: we could try sorting the data by the group_pathkeys and then applying
* Gather Merge.
* generate_useful_gather_paths does most of the work, but we also consider a
* special case: we could try sorting the data by the group_pathkeys and then
* applying Gather Merge.
*
* NB: This function shouldn't be used for anything other than a grouped or
* partially grouped relation not only because of the fact that it explicitly
* references group_pathkeys but we pass "true" as the third argument to
* generate_gather_paths().
* generate_useful_gather_paths().
*/
static void
gather_grouping_paths(PlannerInfo *root, RelOptInfo *rel)
......@@ -7379,10 +7379,11 @@ apply_scanjoin_target_to_paths(PlannerInfo *root,
* variations. So we drop old paths and thereby force the work to be done
* below the Append, except in the case of a non-parallel-safe target.
*
* Some care is needed, because we have to allow generate_gather_paths to
* see the old partial paths in the next stanza. Hence, zap the main
* pathlist here, then allow generate_gather_paths to add path(s) to the
* main list, and finally zap the partial pathlist.
* Some care is needed, because we have to allow
* generate_useful_gather_paths to see the old partial paths in the next
* stanza. Hence, zap the main pathlist here, then allow
* generate_useful_gather_paths to add path(s) to the main list, and
* finally zap the partial pathlist.
*/
if (rel_is_partitioned)
rel->pathlist = NIL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment