On Wed, May 11, 2016 at 10:38 AM, Robert Haas <robertmh...@gmail.com> wrote:
> On Wed, May 11, 2016 at 12:34 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> >> Hmm, that is strange. I would have expected that to stuff a Gather on
> >> top of the Aggregate. I wonder why it's not doing that.
> > The reason is that create_plain_partial_paths() contains a hard-wired
> > decision not to generate any partial paths for relations smaller than
> > 1000 blocks, which means that no partial path will ever be generated
> > for *any* relation in the standard regression tests, force_parallel_mode
> > or no.
> Well that's an interesting theory, except that you've completely
> missed the point of force_parallel_mode. force_parallel_mode pushes a
> special Gather node on top of any plan that is not already parallel in
> some way but which is parallel-safe. That special Gather node runs
> only in the worker, not the leader, and always uses just one worker.
What happens when there are no workers available due to
max_worker_processes already being assigned?
Related question, if max_parallel_degree is >1 and "the requested number of
workers may not actually be available at runtime" is true, does the degree
of parallelism minimize at 1 worker + leader or will the leader simply run
the query by itself?