On Mon, Aug 7, 2023 at 6:19 PM David Rowley <dgrowle...@gmail.com> wrote:

> On Fri, 4 Aug 2023 at 22:26, Richard Guo <guofengli...@gmail.com> wrote:
> > explain (costs off)
> > select * from t t1 left join lateral
> >     (select t1.a as t1a, t2.a as t2a from t t2) s
> > on t1.a = s.t2a + random();
> >                   QUERY PLAN
> > -----------------------------------------------
> >  Nested Loop Left Join
> >    ->  Seq Scan on t t1
> >    ->  Memoize
> >          Cache Key: t1.a
> >          Cache Mode: binary
> >          ->  Seq Scan on t t2
> >                Filter: (t1.a = (a + random()))
> > (7 rows)
> >
> > According to the theory we should not use memoize node for this query
> > because of the volatile function in the inner side.  So propose a patch
> > to fix that.
>
> Thanks for the patch.  I've pushed a variation of it.
>
> I didn't really see the need to make a single list with all the
> RestrictInfos. It seems fine just to write code and loop over the
> ppi_clauses checking for volatility.


That looks good.  Thanks for pushing it!

Thanks
Richard

Reply via email to