Conversation
`ScalarUDFImpl::is_nullable` is deprecated. The `ScalarUDF`'s wrapper also needs deprecation to allow eventually removing the deprecated `ScalarUDFImpl::is_nullable`.
|
Thanks! The deprecation is sure an improvement, but I wonder if overall this is_nullable -> return type from args change suffers from the same issue as the earlier ones, namely that if a user implements a custom UDF overriding the is_nullable, they don’t see the deprecation warning and so their compiler won’t likely warn them to switch to the new one. If I remember correctly, the ”best” way I could figure out for these cases where
(I may be also a bit rusty in my thinking, haven’t been working on this for a while anymore now.) |
Typically the new function delegates to the old one and the old one gets deprecated. If that's not possible, adding such new function is a breaking API change. In such case, graceful deprecation of the old function doesn't help, and actually makes situation worse, as you said -- no compiler's help. Given exactly this was the case with |
|
I agree that simply removing the now that we have an Upgrade Guide, we have a place to provide more context for these changes too so I think thier impact is less jarring / seemingly arbitrary |
ScalarUDFImpl::is_nullableis deprecated since d3f1c9a. TheScalarUDF's wrapper also needs deprecation to allow eventually removing the deprecatedScalarUDFImpl::is_nullable.cc @Blizzara