Re: Do we really need to switch to per-tuple memory context inATRewriteTable() when Table Rewrite is not happening - Mailing list pgsql-hackers

From Ashutosh Sharma
Subject Re: Do we really need to switch to per-tuple memory context inATRewriteTable() when Table Rewrite is not happening
Date
Msg-id CAE9k0Pm4po9TWoTF+dLwOtM2be4ak53cTFp1tVd0_tn=aZ6hxA@mail.gmail.com
Whole thread Raw
In response to Re: Do we really need to switch to per-tuple memory context inATRewriteTable() when Table Rewrite is not happening  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
List pgsql-hackers
On Wed, Jan 3, 2018 at 7:25 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> Ashutosh Sharma wrote:
>
>> I am basically talking about the following lines of code in
>> ATRewriteTable() function.
>>
>> /*
>>  * Switch to per-tuple memory context and reset it for each tuple
>>  * produced, so we don't leak memory.
>>  */
>> oldCxt = MemoryContextSwitchTo(GetPerTupleMemoryContext(estate));
>
> Perhaps a memory context switch is so cheap that adding a branch to
> verify whether it's needed is more expensive than just doing it all the
> time.  You could prove me wrong by measuring it.
>

might be...I'm not sure about the cost of context switching. As you
said, it is quite possible that  adding a check to verify whether
switching is required or not could be more expensive than doing the
context switching itself.

--
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www.enterprisedb.com

> --
> Álvaro Herrera                https://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


pgsql-hackers by date:

Previous
From: Jeff Janes
Date:
Subject: Re: TODO list (was Re: Contributing with code)
Next
From: Ashutosh Sharma
Date:
Subject: Re: Do we really need to switch to per-tuple memory context inATRewriteTable() when Table Rewrite is not happening