Robert Haas <robertmhaas@gmail.com> writes:
> On Mon, Jan 8, 2024 at 5:39 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> I think we're talking at cross-purposes. What I was wondering about
>> (at least further down in the thread) was whether we shouldn't be
>> checking *both* the "real" and the "parent" relids to make sure they
>> don't overlap the parameterization sets. But it's probably overkill.
> But we could also find some way to assert that the parameterization
> sets contain only top-most rels.
Hmm ... perhaps worth doing. I think bms_is_subset against
all_baserels would work.
>> However, I still don't like Richard's patch too much as-is, because
>> the Asserts are difficult to read/understand and even more difficult
>> to compare to the other code path. I think we want to keep the
>> nestloop and not-nestloop paths as visually similar as possible,
>> so I propose we do it more like the attached (where I also borrowed
>> some of your wording for the comments).
> I don't understand what this is parallel to;
> calc_nestloop_required_outer does no similar dance.
No, because the dance is done in its caller. The fact that these
two functions don't have more-similar argument lists is a bit of
a wart, perhaps.
regards, tom lane