apache / apache/arrow-adbc

Drivers should generally allow "dangling" statements and record readers

Open
#3,815 0 comments 0 reactions 0 assignees View on GitHub
Type: enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.