On 2019/01/04 9:53, David Rowley wrote: > Without PREPAREd statements, if the planner itself was unable to prune > the partitions it would already have obtained the lock during > planning, so AcquireExecutorLocks(), in this case, would bump into the > local lock hash table entry and forego trying to obtain the lock > itself. That's not free, but it's significantly faster than obtaining > a lock.
Hmm, AcquireExecutorLocks is only called if prepared statements are used and that too if a generic cached plan is reused. GetCachedPlan -> CheckCachedPlan -> AcquireExecutorLocks In GetCachedPlan: if (!customplan) { if (CheckCachedPlan(plansource)) Thanks, Amit