https://docs.rs/adbc_core/0.21.0/adbc_core/trait.Statement.html#tymethod.cancel
This is actually completely useless because executing a query requires &mut self, but possibly may be invoked via FFI: apache/arrow-adbc#3454
This technically means it must be safe to call this concurrently to Statement::execute() despite both taking &mut self, which breaks Rust's soundness requirements for &mut. This is really problematic. But this is specifically a problem with the ADBC Rust API itself.
Blocked on the resolution of the linked issue. Until then, returning NotImplemented without touching self at all seems the safest.
https://docs.rs/adbc_core/0.21.0/adbc_core/trait.Statement.html#tymethod.cancel
This is actually completely useless because executing a query requires
&mut self, but possibly may be invoked via FFI: apache/arrow-adbc#3454This technically means it must be safe to call this concurrently to
Statement::execute()despite both taking&mut self, which breaks Rust's soundness requirements for&mut. This is really problematic. But this is specifically a problem with the ADBC Rust API itself.Blocked on the resolution of the linked issue. Until then, returning
NotImplementedwithout touchingselfat all seems the safest.