> > > 1) v14-0001-Introduce-RelInfoList-structure.patch > > ------------------------------------------------- > > > > - I'm not entirely sure why we need this change. We had the list+hash > > before, so I assume we do this because we need the output functions? > > I believe that this is what Tom proposed in [1], see "Maybe an appropriate > preliminary patch is to refactor the support code ..." near the end of that > message. The point is that now we need two lists: one for "plain" relations > and one for grouped ones. > > I guess what Toms suggested[1] is to store the the grouped ones into root->upper_rels rather than a separated member, see fetch_upper_rel or UpperRelationKind. If we do need the list+hash method for long list lookup, we can merge it into upper_rels. If we want this benefits at other place rather than root->upper_rels, we can store a generic type in RelInfoList, looks currently it is bounded to RelAggInfo besides RelOptInfo. But overall, personally I think we can ignore such optimization at the first stage to save the attention of the core reviewers since they are too precious :) Just FYI
[1] https://www.postgresql.org/message-id/9726.1542577...@sss.pgh.pa.us Best Regards Andy Fan