[GENERAL] Where are updates from inside transactions visible?

2008-10-21 Thread Rob Richardson
Greetings again!

Suppose I have a table named myTable with fields named item and
value.  Item X has a value of 1.  Inside a C++ application, I begin a
transaction, open the table, change Item X's value to 2, and go to
sleep.  The transaction is still active.  In PGAdmin, I open an SQL
window and execute select * from myTable.  What value do I see for
item X?  Will it still be 1 because the transaction in which it was
changed to 2 is still open?

Thanks again!

RobR

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Where are updates from inside transactions visible?

2008-10-21 Thread Craig Ringer
Rob Richardson wrote:
 Greetings again!
 
 Suppose I have a table named myTable with fields named item and
 value.  Item X has a value of 1.  Inside a C++ application, I begin a
 transaction, open the table, change Item X's value to 2, and go to
 sleep.  The transaction is still active.  In PGAdmin, I open an SQL
 window and execute select * from myTable.  What value do I see for
 item X?  Will it still be 1 because the transaction in which it was
 changed to 2 is still open?

Yes, in both the READ COMMITTED and SERIALIZABLE isolation levels.
Dirty reads, ie reads of uncomitted data, are AFAIK just not possible
in PostgreSQL (though one uncommitted transaction can still affect
another though locks etc).

If you're unsure of these things, (a) read the excellent documentation
available on transaction isolation levels, and (b) test with multiple
simultaneous psql sessions.

--
Craig Ringer

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general