(Eventually) Deprecate ScalarUDFImpl::invoke_batch
and move everything to ScalarUDFImpl::invoke_with_args
#13515
Labels
enhancement
New feature or request
Is your feature request related to a problem or challenge?
The current state of the invoke signature for
ScalarUDFImpl
is somewhat confusing. AfterScalarUDFImpl::invoke_with_args
to support passing the return type created for the udf instance #13290We will have 4 functions
ScalarUDFImpl::invoke
(deprecated, only args)ScalarUDFImpl::invoke_no_args
(deprecated, only row counts)ScalarUDFImpl::invoke_batch
(has row counts and args)ScalarUDFImpl::invoke_with_args
(added to support Access childrenDataType
or return-type inScalarUDFImpl::invoke
#12819, has a structure that has arguments, row counts, and return types)Ideally, we probably should not have added
invoke_batch
but unfortunately we released it inWith a deprecation message telling users to migrate from
invoke
/invoke_no_args
toinvoke_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 leaveinvoke_batch
andinvoke_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 toinvoke_with_args
Additional context
No response
The text was updated successfully, but these errors were encountered: