Re: Is a clearer memory lifespan for outerTuple and innerTuple useful? - Mailing list pgsql-hackers

From Andy Fan
Subject Re: Is a clearer memory lifespan for outerTuple and innerTuple useful?
Date
Msg-id 8734w0xuyc.fsf@163.com
Whole thread Raw
In response to Re: Is a clearer memory lifespan for outerTuple and innerTuple useful?  (Nikita Malakhov <hukutoc@gmail.com>)
List pgsql-hackers
Nikita Malakhov <hukutoc@gmail.com> writes:

> Hi!
>
> Maybe, the alternative way is using a separate kind of context, say name it
> 'ToastContext' for all custom data related to Toasted values? What do
> you think?

That should be a candidate. The latest research makes me think the
'detoast_values' should have the same life cycles as tts_values, so the
memory should be managed by TupleTuleSlot (rather than ExprContext) and
be handled in ExecCopySlot / ExecClearSlot stuff.

In TupleTableSlot we already have a tts_mctx MemoryContext, reusing it
needs using 'pfree' to free the detoast values and but a dedicated
memory context pays more costs on the setup, but a more efficient
MemoryContextReset.

>
> On Sun, Dec 17, 2023 at 4:52 PM Andy Fan <zhihuifan1213@163.com> wrote:
>
>  Andy Fan <zhihuifan1213@163.com> writes:
>
>  > Andy Fan <zhihuifan1213@163.com> writes:
>  >
>  >> ...,  I attached the 2 MemoryContext in
>  >> JoinState rather than MergeJoinState, which is for the "shared detoast
>  >> value"[0] more or less.
>  >>
>
>  In order to delimit the scope of this discussion, I attached the 2
>  MemoryContext to MergeJoinState. Since the code was writen by Tom at
>  2005, so add Tom to the cc-list.
>

However this patch can be discussed seperately.

--
Best Regards
Andy Fan




pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: planner chooses incremental but not the best one
Next
From: "David E. Wheeler"
Date:
Subject: Re: JSON Path and GIN Questions