On Thu, May 12, 2016 at 11:37 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > > Robert Haas <robertmh...@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: query_planner() { .. /* * Now distribute "placeholders" to base rels as needed. This has to be * done after join removal because removal could change whether a * placeholder is evaluatable at a base rel. */ add_placeholders_to_base_rels(root); .. } With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com