Re: [sqlsmith] ERROR: plan should not reference subplan's variable

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andreas Seltenreich <seltenreich(at)gmx(dot)de>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [sqlsmith] ERROR: plan should not reference subplan's variable
Date: 2016-07-01 22:18:22
Message-ID: CA+TgmobN-FD5vf41H-=eZs_vuwY0JfQ1tK_p-H_Erw9NdiQoqA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jul 1, 2016 at 5:29 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Andreas Seltenreich <seltenreich(at)gmx(dot)de> writes:
>> Updating master from f8c5855..1bdae16, sqlsmith triggers "failed to
>> generate plan" errors again. Below is the smallest query logged so far.
>
> Hmm, interesting. This can be reduced to
>
> set force_parallel_mode = on;
>
> explain
> with j1 as (select * from int8_tbl)
> select * from int4_tbl
> where false and EXISTS (select 1 as c0 from j1);
>
> The "plan should not reference subplan's variable" fail seems to be due
> to ancient fuzzy thinking in SS_finalize_plan. When I fix that, I get
> a plan like so:
>
> Gather (cost=0.00..0.00 rows=0 width=0)
> Workers Planned: 1
> Single Copy: true
> -> Result (cost=1.05..1.05 rows=0 width=4)
> One-Time Filter: false
> CTE j1
> -> Seq Scan on int8_tbl (cost=0.00..1.05 rows=5 width=16)
>
> but if I try to actually execute the query, it crashes at runtime,
> apparently because the CTE has not been passed over to the parallel
> worker. Robert, is it expected that CTEs should be parallel-safe?
> I'd have thought not.

Not. See the RTE_CTE case in set_rel_consider_parallel.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2016-07-01 22:52:31 Re: [sqlsmith] ERROR: plan should not reference subplan's variable
Previous Message Michael Paquier 2016-07-01 22:05:46 Re: Broken handling of lwlocknames.h