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