phillipleblanc opened a new issue, #22:
URL: https://github.com/apache/arrow-rs-object-store/issues/22

   **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**
   
   ```rust
   #[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.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to