On Tue, Mar 11, 2014 at 11:07 PM, Simon Riggs <si...@2ndquadrant.com> wrote:
> On 11 March 2014 17:29, Atri Sharma <atri.j...@gmail.com> wrote: > > > > > > > > On Tue, Mar 11, 2014 at 10:56 PM, Simon Riggs <si...@2ndquadrant.com> > wrote: > >> > >> On 11 March 2014 03:41, Tom Lane <t...@sss.pgh.pa.us> wrote: > >> > Joe Conway <m...@joeconway.com> writes: > >> >> I am probably missing something obvious, but why does the > >> >> AccessShareLock remain held on a table after a SELECT statement is > >> >> complete when in a transaction block? > >> > > >> > *Any* lock acquired by user command is held till end of transaction; > >> > AccessShareLock isn't special. > >> > > >> > In general, releasing early would increase the risk of undesirable > >> > behaviors such as tables changing definition mid-transaction. > >> > >> I thought "good question" at first, but the workaround is simple... > >> just don't use multi-step transactions, submit each request as a > >> separate transaction. > >> > >> > > Wouldnt that tend to get inefficient? > > Please outline your alternate proposal so we can judge the comparative > efficiency. > > > I dont have an alternate proposal yet. I was just wondering if per step transactions could lead to a drop in performance. If that is the best way to go, I am all for it. Regards, Atri -- Regards, Atri *l'apprenant*