format: clarify what happens to transactions on AdbcConnectionRelease
- Dominant language
- C#
- Stars
- 627
- Forks
- 217
- Avg merge
- 17h
- Merged PRs (30d)
- 57
Description
### What feature or improvement would you like to see?
The spec doesn't say what should happen to an in-progress transaction when `AdbcConnectionRelease` is called before `AdbcConnectionCommit/AdbcConnectionRollback`.
Currently, most drivers do not explicitly handle the active transaction before closing the connection and rely on the backend behavior. For example: postgresql driver just calls [`database_->Disconnect`](https://github.com/apache/arrow-adbc/blob/main/c/driver/postgresql/connection.cc#L1152) without explicit rollback or commit and Postgresql server aborts the open transaction as part of its own session-teardown path when it sees the client disconnect.
Rolling back on close seems like the reasonable default, but this should be documented explicitly in the spec rather than left to each driver to infer.
Contributor guide
Research direction
Locate the ADBC specification entry for AdbcConnectionRelease and read the related AdbcConnectionCommit and AdbcConnectionRollback definitions. Compare that wording with the PostgreSQL driver's connection.cc behavior described in the issue. Done means the specification explicitly defines what happens to an in-progress transaction when a connection is released.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql
- Domain
- databases, documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100