Vadim Mikheev <vadim@krs.ru> writes:
> Tom Lane wrote:
>> I guess I'm not understanding something. How can it ever be correct
>> practice to release a lock before transaction end? For example, if I
>> write some changes in a table, and then release the lock, wouldn't that
>> allow other backends to see the not-yet-committed changes? What if I
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> No. Backend uses xmin/xmax to know is tuple visible or not.
Ah, some light dawns. Thanks for the clue!
> Postgres does this for system tables only.
OK, so what is good coding practice? Always release write lock after
operating on a system table? Or is that only good some of the time,
and if so what's the consideration?
regards, tom lane