Richard Guo <guofengli...@gmail.com> 于2024年6月18日周二 17:24写道:

> On Tue, Jun 4, 2024 at 6:51 PM Tender Wang <tndrw...@gmail.com> wrote:
> > Yeah, Richard commented the v1 patch about JOIN_UNIQUE_INNER in [1]
> >
> > * I think we should not consider materializing the cheapest inner path
> > if we're doing JOIN_UNIQUE_INNER, because in this case we have to
> > unique-ify the inner path.
> >
> > We don't consider material inner path if jointype is JOIN_UNIQUE_INNER
> in match_unsorted_order().
> > So here is as same logic as match_unsorted_order(). I added comments to
> explain why.
>
> I looked through the v4 patch and found an issue.  For the plan diff:
>
> +         ->  Nested Loop
> +               ->  Parallel Seq Scan on prt1_p1 t1_1
> +               ->  Materialize
> +                     ->  Sample Scan on prt1_p1 t2_1
> +                           Sampling: system (t1_1.a) REPEATABLE (t1_1.b)
> +                           Filter: (t1_1.a = a)
>
> This does not seem correct to me.  The inner path is parameterized by
> the outer rel, in which case it does not make sense to add a Materialize
> node on top of it.
>

Yeah, you're right.

>
> I updated the patch to include a check in consider_parallel_nestloop
> ensuring that inner_cheapest_total is not parameterized by outerrel
> before materializing it.  I also tweaked the comments, test cases and
> commit message.
>

Thanks for the work. Now it looks better.
I have changed the status from "need review" to "ready for commiters"  on
the commitfest.

-- 
Tender Wang

Reply via email to