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

Nicola Crane updated ARROW-14067:
---------------------------------
    Summary: [R] Add error handling to C++ compute functions listed via 
list_compute_functions() which don't have bindings in R or options not supplied 
by user  (was: [R] Add error handling to C++ compute functions listed via 
list_compute_functions() which don't have bindings in R)

> [R] Add error handling to C++ compute functions listed via 
> list_compute_functions() which don't have bindings in R or options not 
> supplied by user
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARROW-14067
>                 URL: https://issues.apache.org/jira/browse/ARROW-14067
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: R
>            Reporter: Nicola Crane
>            Priority: Major
>
> Currently we have the function {{list_compute_functions()}} which lists all 
> available Arrow compute functions.  However, it can return functions which 
> have been implemented in C++ but don't yet have bindings in R.
> A recent ticket implemented (nearly) all of the remaining compute functions 
> without bound options at that moment, but more could appear.
> Currently the error message shown is:
> {code:java}
> library(dplyr)
> library(arrow) # 5.0.0.2
> Table$create(tibble::tibble(Species = c("versicolor", "virginica", 
> "setosa"))) %>%
>     mutate(x = arrow_utf8_trim(Species, options = list(characters = "a")))
> ## Error: Invalid: Attempted to initialize KernelState from null 
> FunctionOptions
> {code}
> We should catch this and instead raise a more user-friendly error. 
> Also, if a valid function is called without options supplied, we get a 
> {{could not find function}} error:
> {code:java}
> library(dplyr)
> library(arrow) # dev
> Table$create(tibble::tibble(Species = c("versicolor", "virginica", 
> "setosa"))) %>%
>   mutate(x = arrow_utf8_trim(Species))
> ## Error in arrow_utf8_trim(Species) :  could not find function 
> "arrow_utf8_trim"
> {code}
> It'd be great to instead inform the user that the correct options haven't 
> been supplied.



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

Reply via email to