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]

Reply via email to