Andres Freund <andres@anarazel.de> writes:
> On 2016-03-10 23:38:14 -0500, Tom Lane wrote:
>> I'll do it ... just send me the list.
> After exporting make_agg, make_limit, make_sort_from_sortclauses and
> making some trivial adjustments due to the pull_var_clause changes
> change, Citus' tests pass on 9.6, bar some noise.
OK, done.
> Pathification made
> some plans switch from hash-agg to sort-agg, and the other way round;
> but that's obviously ok.
I wonder whether that's pathification per se. Of the three core
regression test EXPLAINs that changed in the pathification commit,
two actually were a case of finding better plans. The other one
was a random-looking swap between two plans with near-identical
costs. When I looked into it, I found that the reason the planner
liked the new plan better was that it was parallel-safe; add_path()
saw the costs as fuzzily equal and allowed parallel-safe to be the
determining factor in the choice. The old code hadn't done that
because the hard-wired cost comparisons in grouping_planner() never
took parallel-safety into account. But I'd call that a parallelism
change, not a pathification change; it would certainly have appeared
to be that if the patches had gone in in the opposite order.
regards, tom lane