This is an automated email from the ASF dual-hosted git repository.

kszucs pushed a commit to branch maint-1.0.x
in repository https://gitbox.apache.org/repos/asf/arrow.git

commit ac438965d9fe23da13296d6b7628346eb1196114
Author: tianchen <[email protected]>
AuthorDate: Tue Aug 4 15:26:46 2020 +0800

    ARROW-9597: [C++] AddAlias in compute::FunctionRegistry should be 
synchronized
    
    Closes #7861 from tianchen92/ARROW-9597
    
    Authored-by: tianchen <[email protected]>
    Signed-off-by: tianchen <[email protected]>
---
 cpp/src/arrow/compute/registry.cc | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/cpp/src/arrow/compute/registry.cc 
b/cpp/src/arrow/compute/registry.cc
index ed9f38f..234c030 100644
--- a/cpp/src/arrow/compute/registry.cc
+++ b/cpp/src/arrow/compute/registry.cc
@@ -45,6 +45,17 @@ class FunctionRegistry::FunctionRegistryImpl {
     return Status::OK();
   }
 
+  Status AddAlias(const std::string& target_name, const std::string& 
source_name) {
+    std::lock_guard<std::mutex> mutation_guard(lock_);
+
+    auto it = name_to_function_.find(source_name);
+    if (it == name_to_function_.end()) {
+      return Status::KeyError("No function registered with name: ", 
source_name);
+    }
+    name_to_function_[target_name] = it->second;
+    return Status::OK();
+  }
+
   Result<std::shared_ptr<Function>> GetFunction(const std::string& name) const 
{
     auto it = name_to_function_.find(name);
     if (it == name_to_function_.end()) {

Reply via email to