On 2017/09/12 18:49, Ashutosh Bapat wrote: > On Tue, Sep 12, 2017 at 2:17 PM, Amit Langote > <langote_amit...@lab.ntt.co.jp> wrote: >> >> That said, I noticed that we might need to be careful about what the value >> of the root parent's PlanRowMark's allMarkType field gets set to. We need >> to make sure that it reflects markType of all partitions in the tree, >> including those that are not root parent's direct children. Is that true >> with the proposed implementation? > > Yes. We include child's allMarkTypes into parent's allMarkTypes. So, > top parent's PlanRowMarks should have all descendant's allMarkTypes, > which is not happening in the patch right now. There are two ways to > fix that. > > 1. Pass top parent's PlanRowMark all the way down to the leaf > partitions, so that current expand_single_inheritance_child() collects > allMarkTypes of all children correctly. But this way, PlanRowMarks of > intermediate parent does not reflect allMarkTypes of its children, > only top root records that. > 2. Pass immediate parent's PlanRowMark to > expand_single_inheritance_child(), so that it records allMarkTypes of > its children. In expand_partitioned_rtentry() have following sequence > > expand_single_inheritance_child(root, parentrte, parentRTindex, > parentrel, parentrc, childrel, > appinfos, &childrte, &childRTindex, > &childrc); > > /* If this child is itself partitioned, recurse */ > if (childrel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) > { > expand_partitioned_rtentry(root, childrte, childRTindex, > childrel, childrc, lockmode, appinfos, > partitioned_child_rels); > > /* Include child's rowmark type in parent's allMarkTypes */ > parentrc->allMarkTypes |= childrc->allMarkTypes; > } > so that we push allMarkTypes up the hierarchy. > > I like the second way, since every intermediate parent records > allMarkTypes of its descendants.
I like the second way, too. Thanks, Amit -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers