Subject Re: Question about Record Versioning???
Author Adam
> Dear all
> Can anyone please tell me when the firebird will keep the record
> version?

Firebird does this automatically for you. Whenever you update or
delete a record, the old value will still be visible to another
transaction if that transaction was started before the transaction
that modified or deleted the record commits.

Cross eyed yet?

> if in one program(only one user), one query have select from a
table A,
> and other query update the table A and commit, then firebird will
> the record version?

In this case (assuming one connection and one transaction) probably
not. The old version will be marked for garbage collection. But if
there was another transaction active while all of this was
happenning, it would still need to keep the old value just in case
that other transaction wanted to know what it was.

Or in what occasion it will keep the record version?
> Will it ever release the record version?

Depends what you mean by release. It will mark as deleted the record,
but the database wont shrink back down. It can re-use that space in
the future if you insert another record etc.

Multiversion records are great, because it reduces the amount of
table and row locks you need.