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