Re: Check volatile functions in ppi_clauses for memoize node
От | David Rowley |
---|---|
Тема | Re: Check volatile functions in ppi_clauses for memoize node |
Дата | |
Msg-id | CAApHDvpxFU2OMjGkNHcw6qSwPHQYU=Ho0PEa2irZsXKFkioLGg@mail.gmail.com обсуждение исходный текст |
Ответ на | Check volatile functions in ppi_clauses for memoize node (Richard Guo <guofenglinux@gmail.com>) |
Ответы |
Re: Check volatile functions in ppi_clauses for memoize node
|
Список | pgsql-hackers |
On Fri, 4 Aug 2023 at 22:26, Richard Guo <guofenglinux@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. David
В списке pgsql-hackers по дате отправления: