apache / apache/arrow-adbc

format: Strongly-typed error details

Open
#4,242 4 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 existing design for error details has a drawback which makes it hard to use generically without knowledge of the driver: the values it returns are untyped binary blobs. To overcome this, I propose deprecating it and replacing it with a new API:
```
AdbcStatusCode AdbcErrorGetDetails(const struct AdbcError* error,
struct ArrowSchema* schema, struct ArrowArray* data);
```
This would return all the key-value pairs of the error details at once, with `schema` describing the keys and `data` containing a single row with the values. The driver manager could in principle backfill implementations of `AdbcErrorGetDetailCount` and `AdbcErrorGetDetail` where the detail might consist of the scalar values in `schema`.

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing AdbcErrorGetDetailCount and AdbcErrorGetDetail APIs and the proposed AdbcErrorGetDetails signature in this issue. Review how ArrowSchema and ArrowArray represent the key-value details, then examine the driver-manager backfill described in the proposal. Done means the replacement API and its deprecation or compatibility behavior are agreed and implementable across the affected interfaces.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.