I wrote:
> Actually, the Gather path *isn't* parameterized. The problem here is
> that we're planning an unflattened subquery, and the only thing that
> is parallel-unsafe is that there is an outer Param in its toplevel tlist,
> and we're somehow deciding that we can stick that unsafe tlist into (and
> beneath) the Gather node. So something rotten in that area, but I've not
> quite found it yet.
Hah: not where I thought it was at all. The problem seems to be down to
the optimization I put into is_parallel_safe() awhile back to skip testing
anything if we previously found the entire querytree to be parallel-safe.
Well, the raw query tree *is* parallel-safe. It's only when we inject
some Params that we have a parallel hazard. So that optimization is too
optimistic :-(
regards, tom lane