Skip to content

abdc_ffi: Cancelled in-flight queries cannot report ECANCELED #4474

Description

@fornwall

The rust abdc_ffi driver exporter exports result readers via arrow-rs's FFI_ArrowArrayStream::new, whose error→errno mapping is hardcoded to the ArrowError variant: NotYetImplementedENOSYS, MemoryErrorENOMEM, IoErrorEIO, everything else→EINVAL.

Rust ADBC drivers surface their adbc_core::error::Error through ArrowError::ExternalError, which lands in the EINVAL catch-all — so a driver whose in-flight query was cancelled has no way to report ECANCELED through the C stream, even though the ADBC spec (and the C++ validation suite's SqlQueryCancel) expect exactly that errno after AdbcStatementCancel.

Environment/Setup

adbc_ffi 0.23.0 (also present in current main)

Metadata

Metadata

Assignees

Labels

Type: bugSomething isn't working

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions