@@ -34,8 +34,9 @@ use std::sync::Arc;
3434const MICROS_PER_SECOND : i64 = 1_000_000 ;
3535
3636/// Convert seconds to microseconds with saturating overflow behavior
37- fn secs_to_micros ( secs : impl Into < i64 > ) -> i64 {
38- secs. into ( ) . saturating_mul ( MICROS_PER_SECOND )
37+ #[ inline]
38+ fn secs_to_micros ( secs : i64 ) -> i64 {
39+ secs. saturating_mul ( MICROS_PER_SECOND )
3940}
4041
4142/// Spark-compatible `cast` function for type conversions
@@ -215,9 +216,9 @@ fn cast_to_timestamp(
215216 | ScalarValue :: Int16 ( None )
216217 | ScalarValue :: Int32 ( None )
217218 | ScalarValue :: Int64 ( None ) => None ,
218- ScalarValue :: Int8 ( Some ( v) ) => Some ( secs_to_micros ( * v ) ) ,
219- ScalarValue :: Int16 ( Some ( v) ) => Some ( secs_to_micros ( * v ) ) ,
220- ScalarValue :: Int32 ( Some ( v) ) => Some ( secs_to_micros ( * v ) ) ,
219+ ScalarValue :: Int8 ( Some ( v) ) => Some ( secs_to_micros ( ( * v ) . into ( ) ) ) ,
220+ ScalarValue :: Int16 ( Some ( v) ) => Some ( secs_to_micros ( ( * v ) . into ( ) ) ) ,
221+ ScalarValue :: Int32 ( Some ( v) ) => Some ( secs_to_micros ( ( * v ) . into ( ) ) ) ,
221222 ScalarValue :: Int64 ( Some ( v) ) => Some ( secs_to_micros ( * v) ) ,
222223 other => {
223224 return exec_err ! ( "Unsupported cast from {:?} to timestamp" , other) ;
0 commit comments