From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Delay locking partitions during query execution |
Date: | 2019-01-17 04:18:14 |
Message-ID: | 75b62ff5-45c6-52e0-2d20-8c515442cff8@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-01-17 05:04:10 | PSA: we lack TAP test coverage on NetBSD and OpenBSD |
Previous Message | David Rowley | 2019-01-17 03:42:34 | Re: [HACKERS] PATCH: multivariate histograms and MCV lists |