apache / apache/arrow-adbc

format: clarify what happens to transactions on AdbcConnectionRelease

Open
#4,640 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?

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.