wirybeaver opened a new pull request, #23867: URL: https://github.com/apache/datafusion/pull/23867
> [!NOTE] > This draft depends on #22988. Its branch is stacked on that PR, so GitHub will temporarily show the parent commits too. I will rebase it onto `main` after #22988 merges. ## Which issue does this PR close? Follow-up to #22988. ## Rationale for this change #22988 adds `TableProvider::merge_into`. Without matching FFI plumbing, a foreign `TableProvider` cannot expose an implementation of that method: the consumer side would use the trait's default unsupported behavior instead. ## What changes are included in this PR? - Add a `merge_into` function pointer to `FFI_TableProvider` and dispatch it from `ForeignTableProvider`. - Serialize and deserialize `MergeIntoOp` with the logical extension codec and pass the source as an `FFI_ExecutionPlan`. - Expose the proto helper needed to decode `MergeIntoOp` at the FFI boundary. - Add in-process forced-foreign coverage and a real cross-library ABI integration test. ## Are these changes tested? - `cargo fmt --all` - `cargo clippy --all-targets --all-features -- -D warnings` - `cargo test -p datafusion-ffi` - `cargo test -p datafusion-ffi --features integration-tests` - Required extended workspace test suite from `AGENTS.md` on the identical combined tree before the split ## Are there any user-facing changes? Yes. This adds a function-pointer field to the public `#[repr(C)] FFI_TableProvider` layout, so it is an ABI change and requires the `api change` label. FFI consumers must rebuild against the corresponding DataFusion major version. -- 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]
