Re: [sqlsmith] Failed assertion in parallel worker (ExecInitSubPlan) - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: [sqlsmith] Failed assertion in parallel worker (ExecInitSubPlan)
Date
Msg-id CAA4eK1+iwR12HhAtB4VnvVmxjhqPCoH4A8fTpGqHbr+ADcECSQ@mail.gmail.com
Whole thread Raw
In response to Re: [sqlsmith] Failed assertion in parallel worker (ExecInitSubPlan)  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: [sqlsmith] Failed assertion in parallel worker (ExecInitSubPlan)
List pgsql-hackers
On Fri, May 13, 2016 at 9:43 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Thu, May 12, 2016 at 11:37 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >
> > Robert Haas <robertmhaas@gmail.com> writes:
> > >> Target list for a relation, you mean?  See relation.h:
> > >>
> > >> *      reltarget - Default Path output tlist for this rel; normally contains
> > >> *                  Var and PlaceHolderVar nodes for the values we need to
> > >> *                  output from this relation.
> > >> *                  List is in no particular order, but all rels of an
> > >> *                  appendrel set must use corresponding orders.
> > >> *                  NOTE: in an appendrel child relation, may contain
> > >> *                  arbitrary expressions pulled up from a subquery!
> >
> > > Err, wow.  That makes my head hurt.  Can you explain why this case
> > > only arises for appendrel children, and not for plain rels?
> >
> > Well, plain rels only output Vars ;-)
> >
>
> Does this mean that base rels can't contain PlaceHolderVars?  Isn't it possible in below code:
>

Here I want to ask base rels which are plain rels?

It might be that I am missing something, but if we debug the serial plan for original query [1] for which this issue is reported, we have noticed that PlaceHolderVars that contain subplans are added to base rels for which RTE kind is (RTE_RELATION).


[1] - select ref_68.is_trigger_deletable as c0, (select d from
public.renamecolumnchild limit 1 offset 15) as c1,
ref_68.is_trigger_insertable_into as c2, 3 as c3 from
information_schema.role_udt_grants as ref_67 left join
information_schema.views as ref_68 on (ref_67.grantee =
ref_68.table_catalog ) where true limit 138;

With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Joshua Drake
Date:
Subject: Re: Lets (not) break all the things. Was: [pgsql-advocacy] 9.6 -> 10.0
Next
From: Michael Paquier
Date:
Subject: pg_basebackup, pg_receivexlog and data durability (was: silent data loss with ext4 / all current versions)