[ https://issues.apache.org/jira/browse/ARROW-16211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17608132#comment-17608132 ]
Yaron Gvili commented on ARROW-16211: ------------------------------------- I think many PyArrow function execution code paths lead to Arrow C++ APIs with a configurable function registry. For example, the [`CallFunction` API|https://github.com/apache/arrow/blob/43e66a928e29a811b0e14f2a2d7ffa9f8290ccbe/cpp/src/arrow/compute/exec.h] accepts a function registry via its `ExecContext` argument. So, one could create a first nested function registry holding a first implementation of a UDF, use this first registry for several function execution invocations, then create a second nested function registry holding a second implementation of the UDF, and switch over to using this second registry. The Python interpreter remains the same, and there's no need to remove the UDF - the first registry can just be dropped. > [C++][Python] Unregister compute functions > ------------------------------------------ > > Key: ARROW-16211 > URL: https://issues.apache.org/jira/browse/ARROW-16211 > Project: Apache Arrow > Issue Type: Sub-task > Components: C++, Python > Reporter: Vibhatha Lakmal Abeykoon > Priority: Major > > In general, when using UDFs, the user defines a function expecting a > particular outcome. When building the program, there needs to be a way to > update existing function kernels if it expands beyond what is planned before. > In such situations, there should be a way to remove the existing definition > and add a new definition. To enable this, the unregister functionality has to > be included. -- This message was sent by Atlassian Jira (v8.20.10#820010)