On Wed, Oct 11, 2023 at 1:13 AM Tom Lane <t...@sss.pgh.pa.us> wrote:
> I thought this test wasn't too complete, because has_multiple_baserels > isn't reached at all in many cases thanks to the way the calling if() > is coded. I tried testing like this instead: > > diff --git a/src/backend/optimizer/path/allpaths.c > b/src/backend/optimizer/path/allpaths.c > index eea49cca7b..3f6fc51fb4 100644 > --- a/src/backend/optimizer/path/allpaths.c > +++ b/src/backend/optimizer/path/allpaths.c > @@ -2649,6 +2649,8 @@ set_subquery_pathlist(PlannerInfo *root, RelOptInfo > *rel, > */ > remove_unused_subquery_outputs(subquery, rel, run_cond_attrs); > > + Assert(has_multiple_baserels(root) == > (bms_membership(root->all_baserels) == BMS_MULTIPLE)); > + > /* > * We can safely pass the outer tuple_fraction down to the subquery > if the > * outer level has no joining, aggregation, or sorting to do. > Otherwise > > and came to the same conclusion: check-world finds no cases where > the assertion fails. So it LGTM too. Pushed. Thanks for pushing! Thanks Richard