Robert Haas <robertmh...@gmail.com> writes: > On Thu, Jun 30, 2016 at 5:54 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: >> And the point of that is what, exactly? If the only change is that >> "some restrictions get enforced", I am not clear on why we need such >> a test mode in cases where the planner is afraid to put a top Gather on >> the plan. In particular, given the coding as you now have it, it seems >> like the only case where there's any difference is where we set >> glob->parallelModeOK but nonetheless end up with a not-parallel-safe >> topmost path (that doesn't have a Gather within it). It's not clear >> to me why having the executor switch into parallel mode makes sense at >> all with such a plan.
> Suppose you create a PL/pgsql function that does an UPDATE and mark it > PARALLEL RESTRICTED. You wonder whether you've marked it correctly. > You can set force_parallel_mode=on and SELECT myfunc(). The > subsequent ERROR tells you that you've mismarked it. Right, but that statement is still true with the logic I'm imagining. I would also argue that the existing text in config.sgml explaining what this parameter does corresponds much more nearly to what I'm suggesting than to what you say the semantics are. >> What I'm not happy about is that as you've got things constituted, >> the GetForeignUpperPaths hook is broken so far as injecting parallel paths >> is concerned, because the consider_parallel flags for the upperrels >> aren't set yet when it gets called. If we keep consider_parallel with >> its present usage, we're going to have to refactor things to fix that. > I see. It seems to me, and I may be failing to understand something, > that the placement of create_upper_paths_hook is substantially better > than the placement of GetForeignUpperPaths. If the latter were moved > to where the former now is, then consider_parallel would be set > sufficiently early and everything would be fine. Yeah, I came to more or less the same conclusion last night. Will see to it after you commit this. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers