Skip to content

Commit 44ee9ec

Browse files
author
B Vadlamani
committed
setup_spark_based_cast_tests
1 parent 64967a2 commit 44ee9ec

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

  • datafusion/spark/src/function/conversion

datafusion/spark/src/function/conversion/cast.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ use std::sync::Arc;
3434
const 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

Comments
 (0)