alamb commented on code in PR #10899:
URL: https://github.com/apache/datafusion/pull/10899#discussion_r1638227038


##########
datafusion/functions/src/math/round.rs:
##########
@@ -109,6 +109,9 @@ pub fn round(args: &[ArrayRef]) -> Result<ArrayRef> {
 
     if args.len() == 2 {
         decimal_places = ColumnarValue::Array(args[1].clone());
+        // if cast fails, we return error instead of panic. Better solution 
would to update
+        // function signature and instead error during planning -- to be 
improved later
+        _ = decimal_places.cast_to(&Int32, None)?;

Review Comment:
   I think you could potentially just check the result of the conversion below 
too
   
   So instead of the following on line 120:
   
   ```rust
                   let decimal_places = decimal_places.try_into().unwrap();
   ``` 
   
   something like this?
   
   ```rust
                   let decimal_places: i32 = decimal_places.try_into()
                       .map_err(|e| exec_datafusion_err!("Invalid value for 
decimal places: {decimal_places}: {e}"))?; 
   
   ```



-- 
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...@datafusion.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to