Re: Lock table, Select for update and Serialization error - Mailing list pgsql-general

From sudhir
Subject Re: Lock table, Select for update and Serialization error
Date
Msg-id 4653281F.7030908@cse.iitb.ac.in
Whole thread Raw
In response to Re: Lock table, Select for update and Serialization error  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
It is not necessary that LOCK TABLE will be the first statement.
(assuming serializable isolation level is snapshot isolation in postgres)
For serializable transaction, snapshot should be taken when the 'BEGIN'
statement is executed, and not when LOCK TABLE succeeds.
Hence, uncommitted changes should be invisible to serializable transaction.


> The critical point here is that LOCK TABLE commands at the start of a
> serializable transaction are performed *before* taking the transaction's
> snapshot (the snap happens at the first regular DML command).  They not
> only protect against post-snap changes as shown by Albe's example, but
> against uncommitted changes that were made before transaction start
> (by making the serializable xact wait until those changes are committed
> or aborted before it takes its snap).
>
>


pgsql-general by date:

Previous
From: Robert Fitzpatrick
Date:
Subject: Re: Permance issues with migrated db
Next
From: Michelle Konzack
Date:
Subject: How to move tables in another physial place