As the comment above add_path() says, 'The pathlist is kept sorted by total_cost, with cheaper paths at the front.' And it seems that get_cheapest_parallel_safe_total_inner() relies on this ordering (without being mentioned in the comments, which I think we should do). I'm wondering if this is the right thing to do, as in other places cheapest total cost is found by compare_path_costs(), which would consider startup cost if paths have the same total cost, and that seems more sensible.
Attach a trivial patch to make get_cheapest_parallel_safe_total_inner act this way. Thanks Richard
v1-0001-Revise-get_cheapest_parallel_safe_total_inner.patch
Description: Binary data