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