0utsights opened a new pull request, #25245: URL: https://github.com/apache/datafusion/pull/25245
## Which issue does this PR close? Closes #25153. ## Rationale for this change A foreign execution plan loses its scheduling and evaluation properties when converted into native `PlanProperties`. A cooperative, eager producer becomes noncooperative and lazy on the consumer side, changing the metadata used by `EnsureCooperative`. ## What changes are included in this PR? Add FFI enums and producer callbacks for `scheduling_type` and `evaluation_type`, and restore both values during foreign plan-property reconstruction. Preserve the existing local-marker shortcut and ownership/release paths. This is AI-assisted work and remains a draft pending the contributor's end-to-end review of the implementation and ABI implications. ## What is the testing strategy for this PR? Unit tests exercise every scheduling/evaluation variant through local and forced foreign conversions. A separate-library integration test checks both nondefault properties on a `ForeignExecutionPlan` and verifies that `EnsureCooperative` leaves the already cooperative leaf unwrapped. The foreign regressions fail on the baseline and pass with the fix. Validation on Linux x86_64 with Rust 1.97.0: - Workspace formatting and Clippy with all targets, all features, and warnings denied pass. - Default FFI tests: 121 passed. FFI tests with `integration-tests`: 156 passed, including the separately loaded `.so` regression. - The complete extended workspace test command from `AGENTS.md` passes, including the core fuzz and SQL logic suites. - Workspace Rust documentation with warnings denied, documentation formatting, and workflow policy checks pass. License, spelling, and TOML checks also pass on the same patch. The FFI integration suite also passes on Windows with a separately loaded DLL. Both sides use the same source/toolchain in each test; mixed-toolchain compatibility and a runtime speedup were not measured. ## Are there any user-facing changes? Foreign execution plans retain their producer's scheduling and evaluation metadata. This changes the `FFI_PlanProperties` layout and requires downstream libraries to rebuild for the new major version. This PR targets `main` and must not be backported to a patch release. Please apply the `api change` label before merge. -- 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]
