andygrove commented on PR #4283: URL: https://github.com/apache/datafusion-comet/pull/4283#issuecomment-4558848133
Posted #4459 as an alternative implementation for comparison, using only arrow-stable FFI surfaces as suggested in the feedback above. The new PR provides two flavors side-by-side so reviewers can compare: 1. **C ABI (sedona-style)** — pure C-callable struct of fn pointers, parameterized only by the Arrow C Data Interface. No DataFusion types in the FFI surface; portable to C/C++. Modeled on @paleolimbot's sedona-db reference. 2. **datafusion-ffi (`FFI_ScalarUDF`)** — wraps user `ScalarUDFImpl`s as `FFI_ScalarUDF`. Inherits the full ScalarUDFImpl surface (variadic, type coercion, metadata-aware return types) for free, at the cost of a major-version pin against `datafusion-ffi`. Same JVM API as this PR (`CometRustUDF.register`, registry, JNI bridge, `RustUdfCall` proto, `QueryPlanSerde` branch). Scope is intentionally narrower — scalar-only, happy-path e2e tests only, no docs — so the diff stays focused on the ABI strategy comparison. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
