Re: More information on how to understand table pg_locks.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Olivier Ceulemans" <Olivier(dot)Ceulemans(at)irislink(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: More information on how to understand table pg_locks.
Date: 2007-03-13 16:45:15
Message-ID: 3543.1173804315@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Olivier Ceulemans" <Olivier(dot)Ceulemans(at)irislink(dot)com> writes:
> I'm running 'PostgreSQL 8.2.0 on i686pc-mingw32, compiled by GCC gcc.exe
> (GCC) 3.4.2 (mingw-special)'.

BTW: you oughta think about an update to 8.2.3; we've fixed several nasty
bugs, most especially in the windows port.

> Transaction B is simply blocked by transaction A at step 4.

Right, because A has a share lock on the row that B wants to update.
This is to ensure that nobody deletes that row or changes its key value
before A's new row is committed and visible. (Until that happens, a
would-be deleter would see no reason he couldn't do it.)

> Now I understand what happen.
> Now I'm worried it doesn't happen on other rdbms. :-)

There's been some discussion of trying to lock only the key columns,
ie, allow updates that just change non-key columns. It's not at all
clear how to do that within Postgres though. The other systems you
tried probably have different approaches to this problem.

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ezequias R. da Rocha 2007-03-13 16:47:43 Re: [ADMIN] [GENERAL] PgAgent logging verbosity
Previous Message Dave Page 2007-03-13 16:42:57 Re: [GENERAL] PgAgent logging verbosity