On Mon, Mar 7, 2016 at 5:15 PM, David Rowley <david.row...@2ndquadrant.com> wrote: > My concerns are: > 1. Since there's no cheapest_partial_path in RelOptInfo the code is > currently considering every partial_path for parallel hash aggregate. > With normal aggregation we only ever use the cheapest path, so this > may not be future proof. As of today we do only have at most one > partial path in the list, but there's no reason to code this with that > assumption. I didn't put in much effort to improve this as I see code > in generate_gather_paths() which also makes assumptions about there > just being 1 partial path. Perhaps we should expand RelOptInfo to > track the cheapest partial path? or maybe allpaths.c should have a > function to fetch the cheapest out of the list?
The first one in the list will be the cheapest; why not just look at that? Sorted partial paths are interesting if some subsequent path construction step can make use of that sort ordering, but they're never interesting from the point of view of matching the query's pathkeys because of the fact that Gather is order-destroying. > 3. Nothing in create_grouping_paths() looks at the force_parallel_mode > GUC. I had a quick look at this GUC and was a bit surprised to see 3 > possible states, but no explanation of what they do, so I've not added > code which pays attention to this setting yet. I'd imagine this is > just a matter of skipping serial path generation when parallel is > possible when force_parallel_mode is FORCE_PARALLEL_ON. I've no idea > what FORCE_PARALLEL_REGRESS is for yet. The GUC is documented just like all the other GUCs are documented. Maybe that's not enough, but I don't think "no explanation of what they do" is accurate. But I don't see why this patch should need to care about force_parallel_mode at all. force_parallel_mode is about making queries that wouldn't choose to run in parallel do on their own do so anyway, whereas this patch is about making more queries able to do more work in parallel. > The setrefs.c parts of the patch remain completely broken. I've not > had time to look at this again yet, sorry. I hope you get time soon. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers