

Iam trying to acquire rowlevel locks in postgresql. I try doing this: 
 'select * from students where name='Larry' for update;
But by looking at the holding array of proclock , I've noticed that by doing this only 
AccessShareLock gets acquired which is a table level lock. 
How do I acquire rowlevelock and what fields of Lock or Proclock datastructures indicate it. 
Thanks 
JennyAdd photos to your messages with  MSN 8.  Get 2 months FREE*.

Wed, 23 Jul 2003 12:01:15 -0700
"Jenny -" <nat_lazy@hotmail.com>
None
On Wed, 23 Jul 2003, Jenny - wrote:

> Iam trying to acquire rowlevel locks in postgresql. I try doing this:
> ï¿½'select * from students where name='Larry' for update;
> But by looking at the holding array of proclock , I've noticed that by doing this only
> AccessShareLock gets acquired which is a table level lock. How do I acquire rowlevelock and
> what fields of Lock or Proclock datastructures indicate it. Thanks Jenny

Hi Jenny, have you read up on the locking methods of postgresql in the 
documentation?  Since postgresql uses an MVCC locking mechanism, locks in 
postgresql aren't really the same as they are in row locking databases 
like db2.

If you set the default transaciton isolation mode in postgresql.conf to 
serializable, and wrap all your work in transactions, then select for 
update should do what you're wanting, but, of course, it's always good to 
crank up two psql monitors and actually prove it to yourself. :-)


Wed, 23 Jul 2003 13:48:11 -0600 (MDT)
"scott.marlowe" <scott.marlowe@ihs.com>
Re: 