apache / datafusion

Apache DataFusion SQL Query Engine
https://datafusion.apache.org/
Apache License 2.0
6.33k stars 1.2k forks source link

(Eventually) Deprecate `ScalarUDFImpl::invoke_batch` and move everything to `ScalarUDFImpl::invoke_with_args` #13515

Open alamb opened 16 hours ago

alamb commented 16 hours ago

Is your feature request related to a problem or challenge?

The current state of the invoke signature for ScalarUDFImpl is somewhat confusing. After

We will have 4 functions

Ideally, we probably should not have added invoke_batch but unfortunately we released it in

With a deprecation message telling users to migrate from invoke / invoke_no_args to invoke_batch

Ideally we want to move everyone to invoke_with_args, but if we did so at this time, it would force downstream crates to migrate twice in quick succession, which is non ideal.

Describe the solution you'd like

Rather than immediately deprecate invoke_batch and force another confusing upgrade, I propose we leave invoke_batch and invoke_with_args for several releases to allow downstream crates to update.

Describe alternatives you've considered

Then in a few months (maybe DataFusion 46, or 47) we can deprecate invoke_batch and move everything to invoke_with_args

Additional context

No response