On Mon, Nov 21, 2016 at 1:00 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> 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 :-(
That sucks. Any idea how we might salvage it?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company