Occasionally WiredTiger calls top level API functions internally. In one case complex tables will call reset on all the cursors held for each colgroup. If those cursors have bounds applied the bounds reset logic will take place and they will have their bounds unintentionally cleared.
To fix this we should only reset bounds when cursor->reset() is called by a user instead of by WT. To check we can use the api_call_counter held on the session to guarantee the API was called externally, then we reset the bounds on the cursor.
A macro should be written to check the API call counter so it can be standardized across use case, and the logic should be added to the file cursor and possibly the table cursor as it may call into the file cursor.
Testing should be written to validate the logic.
- related to
-
WT-9738 Complex tables unintentionally clears bounds with cursor remove operation
- Closed