Drivers should generally allow "dangling" statements and record readers
- Dominant language
- C#
- Stars
- 627
- Forks
- 217
- Avg merge
- 17h
- Merged PRs (30d)
- 57
Description
### What feature or improvement would you like to see?
https://github.com/apache/arrow-adbc/issues/3713
https://github.com/apache/arrow-adbc/issues/3135#issuecomment-3064168884
We should allow you to close a statement even if the record reader is not drained, and close a connection even if statements are not closed. Currently this is considered unsafe and various bindings guard against this. Instead the driver should be prepared and invalidate the statement/readers.
I think, however, the API user should still be expected to Release the statement/reader to avoid leaking memory. But leaking memory is better than crashing.
Contributor guide
Research direction
Start by reading the linked issues #3713 and #3135, then trace how drivers handle closing statements, record readers, and connections. Done means drivers safely invalidate still-open dependent objects when their parent is closed, while users remain responsible for releasing them to avoid memory leaks.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend-api-design, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100