Skip to content

Conversation

@dyemanov
Copy link
Member

We allow to specify isc_tpb_read_consistency alone and at least one driver currently specifies ReadCommitted ReadConsistency mode this way. However, in fact the transaction isolation becomes Snapshot with TRA_read_consistency flag being set too. This causes asserts in the code and I'm not really sure the chase/restart logic works properly in all cases.

Given that such a usage seems quite logical and handy, I suggest to not raise an error but rather imply ReadCommitted instead of Snapshot in this case.

Also, the transaction isolation detection in the trace was changed to be more resistant to weird flag combinations like the one described above and not raise unexpected asserts. It's now also in sync with the value of MON$ISOLATION_MODE.

@dyemanov dyemanov requested a review from hvlad September 21, 2025 07:43
@dyemanov dyemanov self-assigned this Sep 21, 2025
@dyemanov dyemanov merged commit 45f0a5a into master Sep 24, 2025
46 checks passed
dyemanov added a commit that referenced this pull request Sep 29, 2025
* Allow isc_tpb_read_consistency used alone to imply Read Committed Read Consistency

* Sync the trace logic with MON$ tables regarding txn isolation, make it more robust to improper set of flags

* Restore the original error for isc_tpb_[no_]rec_version version specified without isc_tpb_read_committed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants