[ 
https://issues.apache.org/jira/browse/ARROW-9389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wes McKinney resolved ARROW-9389.
---------------------------------
    Resolution: Fixed

Issue resolved by pull request 7715
[https://github.com/apache/arrow/pull/7715]

> [C++] Can't call isin/match through CallFunction
> ------------------------------------------------
>
>                 Key: ARROW-9389
>                 URL: https://issues.apache.org/jira/browse/ARROW-9389
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>            Reporter: Neal Richardson
>            Assignee: Wes McKinney
>            Priority: Major
>              Labels: compute, pull-request-available
>             Fix For: 1.0.0
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> From R:
> {code:r}
> library(arrow)
> a <- Array$create(1:4)
> b <- Array$create(c(2L, 4L, 3L))
> arrow:::call_function("isin", a, b)
> {code}
> says that "isin" takes only 1 argument, not 2, which doesn't make sense. In 
> C++ scalar_set_lookup.cc, I see {{auto isin = 
> std::make_shared<ScalarFunction>("isin", Arity::Unary());}}, which is the 
> source of that validation I guess, but the kernel in api_scalar.cc has 
> signature {{Result<Datum> IsIn(const Datum& values, const Datum& value_set, 
> ExecContext* ctx)}}.
> If I actually call "isin" with one argument, i.e. 
> {{arrow:::call_function("isin", a)}}, it segfaults.
> Changing the definition to Arity::Binary(), it accepts 2 arguments, but it 
> errors with {{NotImplemented: Function isin has no kernel matching input 
> types (array[int32], array[int32])}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to