Re: A performance issue with Memoize - Mailing list pgsql-hackers

From Richard Guo
Subject Re: A performance issue with Memoize
Date
Msg-id CAMbWs4-3oaHkAENPYn-qg8XhBv3WnwbSGq07GDf-j0=dM-jZ3w@mail.gmail.com
Whole thread Raw
In response to A performance issue with Memoize  (Richard Guo <guofenglinux@gmail.com>)
List pgsql-hackers

On Fri, Oct 20, 2023 at 6:40 PM Richard Guo <guofenglinux@gmail.com> wrote:
I haven't thought thoroughly about the fix yet.  But one way I'm
thinking is that in create_subqueryscan_plan() we can first add the
subquery's subplan_params to root->curOuterParams, and then replace
outer-relation Vars in scan_clauses afterwards.  That can make us be
able to share the same PARAM_EXEC slot for the same Var that both
belongs to the subquery's uplevel vars and to the NestLoop's
outer-relation vars.  To be concrete, something like attached.

After some more thought, I think this is the right way to fix this
issue.  The idea here is to make sure that the same NLP Var shares the
same PARAM_EXEC slot.  This change can also help to save PARAM_EXEC
slots (which is trivial though since slots are very cheap).

Thanks
Richard

pgsql-hackers by date:

Previous
From: jian he
Date:
Subject: Re: SQL:2011 application time
Next
From: Richard Guo
Date:
Subject: Re: A performance issue with Memoize