On Wed, 06 Dec 2006 13:29:37 +0100, Dave Cramer <pg@xxxxxxxxxxxxx> wrote:
Unless you specifically ask for it postgresql doesn't lock any rows when
you update data.
Thats not right. UPDATE will force a RowExclusiveLock to rows matching the
WHERE clause, or all if no one is specified.
@Joost Kraaijeveld: Yes, because there is no EntryExclusiveLock or
something like that. Roughly you can say, each UPDATE statement iterates
through the affected table and locks the WHERE clause matching records
(rows) exclusivly to prevent data inconsistancy during the UPDATE. After
that your rows will be updated and the lock will be repealed.
You can see this during an long lasting UPDATE by querying the pg_locks
with joined pg_stats_activity (statement must be enabled).
Dave
On 6-Dec-06, at 2:04 AM, Joost Kraaijeveld wrote:
Does PostgreSQL lock the entire row in a table if I update only 1
column?
--Groeten,
Joost Kraaijeveld
Askesis B.V.
Molukkenstraat 14
6524NB Nijmegen
tel: 024-3888063 / 06-51855277
fax: 024-3608416
web: www.askesis.nl
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match
CU,
Jens
--
**
Jens Schipkowski