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

Reply via email to