-
Notifications
You must be signed in to change notification settings - Fork 135
Closed
apache/arrow-rs
#7074Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Attempting to convert a string which contains a valid large date in the ISO format (i.e. +10999-12-31) will result in the following error:
CastError("Cannot cast string '+10999-12-31' to value of Date32 type")
According to ISO 8601:
Four digits or more for the year. Years in the range 0000 to 9999 will be pre-padded by zero to ensure four digits. Years outside that range will have a prefixed positive or negative symbol.
To Reproduce
#[test]
fn test_cast_string_with_large_date_to_date32() {
let array = Arc::new(StringArray::from(vec![
Some("+10999-12-31"),
Some("-0010-02-28")
])) as ArrayRef;
let to_type = DataType::Date32;
let options = CastOptions {
safe: false,
format_options: FormatOptions::default(),
};
let b = cast_with_options(&array, &to_type, &options).unwrap();
let c = b.as_primitive::<Date32Type>();
assert_eq!(3298139, c.value(0));
assert_eq!(-723122, c.value(1));
}Expected behavior
The cast works as expected.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working