Skip to content

Commit 30c1929

Browse files
committed
cleanup and clippy
1 parent ea3dc57 commit 30c1929

2 files changed

Lines changed: 20 additions & 6 deletions

File tree

native/core/src/execution/columnar_to_row.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,7 @@ impl<'a> TypedElements<'a> {
674674
TypedElements::Float64(arr) => bulk_copy_range!(arr, 8),
675675
TypedElements::Date32(arr) => bulk_copy_range!(arr, 4),
676676
TypedElements::TimestampMicro(arr) => bulk_copy_range!(arr, 8),
677+
TypedElements::Time64Nano(arr) => bulk_copy_range!(arr, 8),
677678
_ => {} // Should not reach here due to supports_bulk_copy check
678679
}
679680
}
@@ -846,7 +847,8 @@ fn is_fixed_width(data_type: &DataType) -> bool {
846847
| DataType::Float32
847848
| DataType::Float64
848849
| DataType::Date32
849-
| DataType::Timestamp(TimeUnit::Microsecond, _) => true,
850+
| DataType::Timestamp(TimeUnit::Microsecond, _)
851+
| DataType::Time64(TimeUnit::Nanosecond) => true,
850852
DataType::Decimal128(p, _) => *p <= MAX_LONG_DIGITS,
851853
_ => false,
852854
}
@@ -1254,6 +1256,15 @@ impl ColumnarToRowContext {
12541256
TimestampMicrosecondArray,
12551257
|v: i64| v
12561258
),
1259+
DataType::Time64(TimeUnit::Nanosecond) => write_fixed_column_primitive!(
1260+
self,
1261+
array,
1262+
row_size,
1263+
field_offset_in_row,
1264+
num_rows,
1265+
Time64NanosecondArray,
1266+
|v: i64| v
1267+
),
12571268
DataType::Decimal128(precision, _) if *precision <= MAX_LONG_DIGITS => {
12581269
write_fixed_column_primitive!(
12591270
self,
@@ -1379,6 +1390,9 @@ fn get_field_value(data_type: &DataType, array: &ArrayRef, row_idx: usize) -> Co
13791390
DataType::Timestamp(TimeUnit::Microsecond, _) => {
13801391
get_field_value_primitive!(array, row_idx, TimestampMicrosecondArray, |v: i64| v)
13811392
}
1393+
DataType::Time64(TimeUnit::Nanosecond) => {
1394+
get_field_value_primitive!(array, row_idx, Time64NanosecondArray, |v: i64| v)
1395+
}
13821396
DataType::Decimal128(precision, _) if *precision <= MAX_LONG_DIGITS => {
13831397
get_field_value_primitive!(array, row_idx, Decimal128Array, |v: i128| v as i64)
13841398
}

native/spark-expr/src/datetime_funcs/to_time.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ mod tests {
333333
Some(1_000 * NANOS_PER_MICRO)
334334
);
335335
// 6 digits
336-
assert_eq!(string_to_time("00:00:00.000001"), Some(1 * NANOS_PER_MICRO));
336+
assert_eq!(string_to_time("00:00:00.000001"), Some(NANOS_PER_MICRO));
337337
// Full precision
338338
assert_eq!(
339339
string_to_time("23:59:59.999999"),
@@ -351,12 +351,12 @@ mod tests {
351351
// Single digit hour, minute, second
352352
assert_eq!(
353353
string_to_time("1:2:3"),
354-
Some(1 * NANOS_PER_HOUR + 2 * NANOS_PER_MINUTE + 3 * NANOS_PER_SECOND)
354+
Some(NANOS_PER_HOUR + 2 * NANOS_PER_MINUTE + 3 * NANOS_PER_SECOND)
355355
);
356356
assert_eq!(
357357
string_to_time("1:2:3.04"),
358358
Some(
359-
1 * NANOS_PER_HOUR
359+
NANOS_PER_HOUR
360360
+ 2 * NANOS_PER_MINUTE
361361
+ 3 * NANOS_PER_SECOND
362362
+ 40_000 * NANOS_PER_MICRO
@@ -369,7 +369,7 @@ mod tests {
369369
assert_eq!(
370370
string_to_time("T1:02:3.04"),
371371
Some(
372-
1 * NANOS_PER_HOUR
372+
NANOS_PER_HOUR
373373
+ 2 * NANOS_PER_MINUTE
374374
+ 3 * NANOS_PER_SECOND
375375
+ 40_000 * NANOS_PER_MICRO
@@ -386,7 +386,7 @@ mod tests {
386386
// 12:00:00 AM = midnight
387387
assert_eq!(string_to_time("12:00:00 AM"), Some(0));
388388
// 1:00:00 AM
389-
assert_eq!(string_to_time("1:00:00 AM"), Some(1 * NANOS_PER_HOUR));
389+
assert_eq!(string_to_time("1:00:00 AM"), Some(NANOS_PER_HOUR));
390390
// 11:59:59 AM
391391
assert_eq!(
392392
string_to_time("11:59:59 AM"),

0 commit comments

Comments
 (0)