From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Richard Guo <guofenglinux(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Check volatile functions in ppi_clauses for memoize node |
Date: | 2023-08-07 10:19:08 |
Message-ID: | CAApHDvpxFU2OMjGkNHcw6qSwPHQYU=Ho0PEa2irZsXKFkioLGg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, 4 Aug 2023 at 22:26, Richard Guo <guofenglinux(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Vondra | 2023-08-07 10:51:24 | Re: Configurable FP_LOCK_SLOTS_PER_BACKEND |
Previous Message | Fabien COELHO | 2023-08-07 10:17:38 | Re: pgbench: allow to exit immediately when any client is aborted |