You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by al...@apache.org on 2023/06/21 20:36:05 UTC

[arrow-datafusion] branch main updated: Minor: remove some unwrap (#6738)

This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new b275e1df43 Minor: remove some unwrap (#6738)
b275e1df43 is described below

commit b275e1df43589f181a038a268f0fa4c2d47fb8db
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Wed Jun 21 16:35:59 2023 -0400

    Minor: remove some unwrap (#6738)
---
 datafusion/physical-expr/src/datetime_expressions.rs | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/datafusion/physical-expr/src/datetime_expressions.rs b/datafusion/physical-expr/src/datetime_expressions.rs
index 349ed76fe9..443514063f 100644
--- a/datafusion/physical-expr/src/datetime_expressions.rs
+++ b/datafusion/physical-expr/src/datetime_expressions.rs
@@ -258,7 +258,7 @@ fn date_trunc_single(granularity: &str, value: i64) -> Result<i64> {
             )));
         }
     };
-    // `with_x(0)` are infalible because `0` are always a valid
+    // `with_x(0)` are infallible because `0` are always a valid
     Ok(value.unwrap().timestamp_nanos())
 }
 
@@ -284,18 +284,11 @@ pub fn date_trunc(args: &[ColumnarValue]) -> Result<ColumnarValue> {
         ColumnarValue::Scalar(ScalarValue::TimestampNanosecond(v, tz_opt)) => {
             let nano = (f)(*v)?;
 
-            if nano.is_none() {
-                return Ok(ColumnarValue::Scalar(ScalarValue::TimestampNanosecond(
-                    None,
-                    tz_opt.clone(),
-                )));
-            }
-
             match granularity.as_str() {
                 "minute" => {
                     // trunc to minute
                     let second = ScalarValue::TimestampNanosecond(
-                        Some(nano.unwrap() / 1_000_000_000 * 1_000_000_000),
+                        nano.map(|nano| nano / 1_000_000_000 * 1_000_000_000),
                         tz_opt.clone(),
                     );
                     ColumnarValue::Scalar(second)
@@ -303,7 +296,7 @@ pub fn date_trunc(args: &[ColumnarValue]) -> Result<ColumnarValue> {
                 "second" => {
                     // trunc to second
                     let mill = ScalarValue::TimestampNanosecond(
-                        Some(nano.unwrap() / 1_000_000 * 1_000_000),
+                        nano.map(|nano| nano / 1_000_000 * 1_000_000),
                         tz_opt.clone(),
                     );
                     ColumnarValue::Scalar(mill)
@@ -311,17 +304,14 @@ pub fn date_trunc(args: &[ColumnarValue]) -> Result<ColumnarValue> {
                 "millisecond" => {
                     // trunc to microsecond
                     let micro = ScalarValue::TimestampNanosecond(
-                        Some(nano.unwrap() / 1_000 * 1_000),
+                        nano.map(|nano| nano / 1_000 * 1_000),
                         tz_opt.clone(),
                     );
                     ColumnarValue::Scalar(micro)
                 }
                 _ => {
                     // trunc to nanosecond
-                    let nano = ScalarValue::TimestampNanosecond(
-                        Some(nano.unwrap()),
-                        tz_opt.clone(),
-                    );
+                    let nano = ScalarValue::TimestampNanosecond(nano, tz_opt.clone());
                     ColumnarValue::Scalar(nano)
                 }
             }