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;