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] [Updated] (ARROW-13938) [C++] Date and datetime types should
autocast from strings
[ https://issues.apache.org/jira/browse/ARROW-13938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Keane updated ARROW-13938:
-----------------------------------
Issue Type: Improvement (was: Bug)
> [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: Improvement
> Components: C++
> Reporter: Jonathan Keane
> Priority: Major
>
> 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)