You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@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)