This bug existed since version 1.0 and went through the versions to 2.5.3
The situation is as follows:
1. Empty database with some tables, generators created.
2. The user starts to work, opens transaction, inserts a row into table A, the transaction is committed
3. Then he makes a transaction with a query like this:
UPDATE <TABLE B> SET <INTEGER FIELD>=<INTEGER FIELD>+<some value> WHERE <ID field>=some value
The transaction is commited after each UPDATE query
4, The he makes a transaction with a query:
INSERT INTO <TABLE C> ...
transaction is commited
5. The steps 3,4 are repeated for <n> times with dirrerent data.
6. The user disconnects from the base or permits another query INSERT INTO <TABLE A>.
Then the user works with the database for a week, for a month or a year (the period doesnot matter), he can add new fileds, can make changes to <INTEGER FIELD> in the <TABLE B>. Then occurs an abnormal shutdown of the computer (for example, electricity is cut off).
When the power is restored and the user connects to the database, the user finds out that the values of the <INTEGER FIELD> of the <TABLE B> are mistakenly increased by the <some value>, like the Firebird 'repeated' all the transactions made in the step 3.
No matter how many times the user made steps 2-5, the Firebird repeats only the first since the database creation sequence of the 'step 3' transactions.
If needed, the database and the transaction/table detail can be supplied.