You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Jonathan Keane (Jira)" <ji...@apache.org> on 2021/09/08 19:20:00 UTC

[jira] [Created] (ARROW-13938) [C++] Date and datetime types should autocast from strings

Jonathan Keane created ARROW-13938:
--------------------------------------

             Summary: [C++] Date and datetime types should autocast from strings
                 Key: ARROW-13938
                 URL: https://issues.apache.org/jira/browse/ARROW-13938
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
            Reporter: Jonathan Keane


When comparing dates and datetimes, people frequently expect that a string (formatted as ISO8601) will auto-cast and compare to dates and times.

Examples in R:

{code:r}
library(arrow)
#> 
#> Attaching package: 'arrow'
#> The following object is masked from 'package:utils':
#> 
#>     timestamp

arr <- Array$create(as.Date(c("1974-04-06", "1988-05-09")))
arr > "1980-01-01"
#> Error: NotImplemented: Function greater has no kernel matching input types (array[date32[day]], scalar[string])

# creating the scalar as a date works, of course
arr > Scalar$create(as.Date("1980-01-01"))
#> Array
#> <bool>
#> [
#>   false,
#>   true
#> ]

# datatimes also do not auto-cast
arr <- Array$create(Sys.time())
arr > "1980-01-01 00:00:00"
#> Error: NotImplemented: Function greater has no kernel matching input types (array[timestamp[us]], scalar[string])


# or a more real-world example
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
mtcars$date <- as.Date(c("1974-04-06", "1988-05-09"))

ds <- InMemoryDataset$create(mtcars)

ds %>%
  filter(date > "1980-01-01") %>%
  collect()
#> Error: NotImplemented: Function greater has no kernel matching input types (array[date32[day]], scalar[string])
{code}



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