Subject Re: [firebird-support] READ ONLY READ COMMITTED and consistency
Author Michael Ludwig
Alan McDonald schrieb am 17.05.2010 um 11:37:35 (+1000):

> I say again:
> > Is it possible for my RO/RC transaction to see one of the two rows
> > affected by the intervening UPDATE in its state *****before the
> > intervening COMMIT****, and the other in its state after that
> > COMMIT?

Yes it is possible in READ COMMITTED, according to the replies given,
and it makes sense. You cannot see the updated row before it is
committed and becomes a new record version. If you could, that would
be a dirty read. But you may see one row in its version before the
intervening COMMIT, and the other in its version after the intervening
COMMIT.

> My answer is no and you agree with me (above) - An RC transaction sees
> what is committed. He's asking if you see it BEFORE the commit.
>
> So a select statement will NOT see something which is NOT committed.

Right, but it may see part of the data in its version before the
intervening COMMIT, and part of the data in its version after the
intervening COMMIT. It will, without knowing that this is the case,
see the transaction's hand on the data. And that clearly breaks the
degree of isolation you typically want when you write data yourself.

--
Michael Ludwig