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 по дате отправления:

Предыдущее
От: Fabien COELHO
Дата:
Сообщение: Re: pgbench: allow to exit immediately when any client is aborted
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: Configurable FP_LOCK_SLOTS_PER_BACKEND