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