On Wed, Jan 3, 2018 at 7:25 PM, Alvaro Herrera <alvhe...@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