Hi, I have an idea about mvcc and different DML of the same row in the same transaction. Normally when a backend do an unpdate on a row ( call it X ) , we done an insert and logical delete on this row (0,1,2..N are the "version of the row) :
X0 (delete "old" row) X1 (insert "new" row) if we continue the transaction and we do for example another update on this row (X) , we again redo the same operation: X0 (deleted "old" row) X1 (row inserted, NOW deleted) => not needed for rollback X2 (insert "new" row ) But why we need all these versions of the same row on table, if for rollback we need only the original row X (X0) ? So I think we need it in memory, not on physical space of table (ok there is the cache, but ..) or something similar, or this method is for transaction with isolation level at "read uncommited"? Kind Regards Matteo Durighetto ----------------------- desmodem...@gmail.com m.durighe...@miriade.it -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers