Re: BUG #17213: Wrong result from a query involving Merge Semi Join and Memoize

David Rowley <dgrowleyml@gmail.com>

From: David Rowley <dgrowleyml@gmail.com>
To: Elvis Pranskevichus <elprans@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2021-11-22T10:36:25Z
Lists: pgsql-bugs
On Tue, 26 Oct 2021 at 20:50, David Rowley <dgrowleyml@gmail.com> wrote:
> An alternative way to fix the problem would be just to flush the cache
> whenever a Param changes that is not part of the cache key. The
> Materalize node works a bit like this, except it'll just flush the
> cache whenever a param changes, since the Material cache is not
> parameterized.   One fairly hefty drawback with doing it this way is
> that the planner does not get a chance to take into account the fact
> that the cache could be flushed quite often.  This could result in a
> Nested Loop / Memoize join being chosen instead of a Hash or Merge
> Join when the hash or merge join would be much more favourable. Let's
> call this "option 2".

I'm planning on giving the patch I submitted another look with the
intention of pushing it tomorrow.

David



Commits

  1. Flush Memoize cache when non-key parameters change, take 2

  2. Flush Memoize cache when non-key parameters change