Hi all,

After almost one year using PostgreSQL, I'm still discovering things about
locks, we have little documentation about it:

I know that one can lock a table in the following ways:

* BEGIN statement:
     If you don't explicit lock a table using LOCK statement, it will be
     implicit locked only at first UPDATE, INSERT or DELETE operation.

* DECLARE statement:
     Currently, PostgreSQL doesn't support READ ONLY cursors, once a cursor
     is declared, other users can only read data referenced by cursor.
     Write operations to the referenced table like UPDATE, INSERT,
     DELETE or DROP aren't allowed until the end of transaction.

* LOCK statement:
     LOCK don't allows read access to locked tables by the other users.
     If another user try to SELECT a locked table, he must attend
     until the locked table is released.

Just wondering if there are other ways to lock tables.
Any replay will be appreciate.                             Thanks, Jose'


Mon, 11 May 1998 14:49:37 +0000 (UTC)
"Jose' Soares Da Silva" <sferac@bo.nettuno.it>
locks
Jose' Soares Da Silva wrote:
> 
> Hi all,
> 
> After almost one year using PostgreSQL, I'm still discovering things about
> locks, we have little documentation about it:
> 
> I know that one can lock a table in the following ways:
> 
> * BEGIN statement:
>      If you don't explicit lock a table using LOCK statement, it will be
>      implicit locked only at first UPDATE, INSERT or DELETE operation.
> 
> * DECLARE statement:
>      Currently, PostgreSQL doesn't support READ ONLY cursors, once a cursor
>      is declared, other users can only read data referenced by cursor.
>      Write operations to the referenced table like UPDATE, INSERT,
>      DELETE or DROP aren't allowed until the end of transaction.
> 
> * LOCK statement:
>      LOCK don't allows read access to locked tables by the other users.
>      If another user try to SELECT a locked table, he must attend
>      until the locked table is released.
> 
> Just wondering if there are other ways to lock tables.
> Any replay will be appreciate.                             Thanks, Jose'
> 


I believe it to be so that BEGIN locks each table when it first
occurs in a statement. With multiple statements per transaction
this may lead to a deadlock.

Roelof

----------------------------------------------------------------
Home is where the http://eboa.com/ is.
----------------------------------------------------------------

Mon, 11 May 1998 22:06:49 +0200
Roelof Osinga <roelof@eboa.com>
Re: [QUESTIONS] locks