timsaucer opened a new issue, #22336:
URL: https://github.com/apache/datafusion/issues/22336

   ## Gap
   
   `FFI_PartitionEvaluator` in `datafusion/ffi/src/udwf/partition_evaluator.rs` 
does not plumb `PartitionEvaluator::memoize`. Producers that override `memoize` 
to cache work between consecutive window evaluations have the override silently 
discarded.
   
   ## Missing method
   
   - `memoize`
   
   ## Why it matters
   
   **Severity: minor.** Performance regression only — correctness unaffected. 
But for window functions that rely on memoization (e.g. ranking variants that 
reuse prior-frame state), the consumer side recomputes from scratch every frame.
   
   ## Implementation notes
   
   - Plumb as `unsafe extern \"C\" fn`; wrapper body calls `inner.memoize(...)`.
   - Layout change → `api change` label, target `main` only, no back-port to 
`branch-<major>`.
   - Add unit tests (local-bypass + `mock_foreign_marker_id` forced-foreign). 
Integration test under `datafusion/ffi/tests/` if memoization state crosses the 
boundary.
   
   ---
   
   Generated from an audit performed for PR #22327 (datafusion-ffi agent 
skill). If a PR addressing this finds the omission to be a false positive, 
please also propose an update to the `datafusion-ffi` skill so future audits do 
not re-flag it.


-- 
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