From c4a074a7067c213e575f900843b5c6f2e2ae32b2 Mon Sep 17 00:00:00 2001 From: Min Kim Date: Tue, 10 Dec 2024 12:03:09 -0800 Subject: [PATCH] Do not use deprecated API --- src/csv/reader.rs | 7 +++++-- src/stats.rs | 17 +++++++++++++++-- src/table.rs | 15 +++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/csv/reader.rs b/src/csv/reader.rs index a7c0fe7..1c06b61 100644 --- a/src/csv/reader.rs +++ b/src/csv/reader.rs @@ -261,6 +261,7 @@ where fn parse_timestamp(v: &[u8]) -> Result { Ok( chrono::NaiveDateTime::parse_from_str(str::from_utf8(v)?, "%Y-%m-%dT%H:%M:%S%.f%:z")? + .and_utc() .timestamp_nanos_opt() .unwrap_or_default(), ) @@ -577,7 +578,7 @@ mod tests { let c3 = Column::try_from_slice::(&c3_v).unwrap(); let c4 = Column::try_from_slice::( c4_v.iter() - .map(|v| v.timestamp()) + .map(|v| v.and_utc().timestamp()) .collect::>() .as_slice(), ) @@ -631,7 +632,9 @@ mod tests { FieldParser::float64(), FieldParser::timestamp_with_parser(move |v| { let val: String = v.iter().map(|&c| c as char).collect(); - Ok(NaiveDateTime::parse_from_str(&val, "%Y-%m-%d %H:%M:%S")?.timestamp()) + Ok(NaiveDateTime::parse_from_str(&val, "%Y-%m-%d %H:%M:%S")? + .and_utc() + .timestamp()) }), FieldParser::Utf8, FieldParser::Binary, diff --git a/src/stats.rs b/src/stats.rs index aacd1ad..b95ea70 100644 --- a/src/stats.rs +++ b/src/stats.rs @@ -1,5 +1,5 @@ use arrow::datatypes::{Float64Type, Int64Type, UInt32Type, UInt64Type}; -use chrono::NaiveDateTime; +use chrono::{DateTime, NaiveDateTime}; use num_traits::ToPrimitive; use serde::{Deserialize, Serialize}; use statistical::{mean, population_standard_deviation}; @@ -546,7 +546,9 @@ pub(crate) fn convert_time_intervals( // The first interval of each day should start with 00:00:00. let mut interval_idx = v / A_BILLION; interval_idx = (interval_idx / time_interval) * time_interval; - NaiveDateTime::from_timestamp_opt(interval_idx, 0).unwrap_or_default() + DateTime::from_timestamp(interval_idx, 0) + .unwrap_or_default() + .naive_utc() }) .collect::>() } @@ -638,42 +640,49 @@ mod tests { .unwrap() .and_hms_opt(6, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(6, 15, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 21) .unwrap() .and_hms_opt(20, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 21) .unwrap() .and_hms_opt(20, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(6, 45, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 21) .unwrap() .and_hms_opt(8, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(9, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), ]; @@ -709,24 +718,28 @@ mod tests { .unwrap() .and_hms_opt(0, 3, 20) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(0, 9, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(0, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(1, 15, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), ]; diff --git a/src/table.rs b/src/table.rs index 41c52e3..2dbafcb 100644 --- a/src/table.rs +++ b/src/table.rs @@ -732,48 +732,56 @@ mod tests { .unwrap() .and_hms_opt(0, 0, 10) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2020, 1, 1) .unwrap() .and_hms_opt(0, 0, 13) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2020, 1, 1) .unwrap() .and_hms_opt(0, 0, 15) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2020, 1, 1) .unwrap() .and_hms_opt(0, 0, 22) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2020, 1, 1) .unwrap() .and_hms_opt(0, 0, 22) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2020, 1, 1) .unwrap() .and_hms_opt(0, 0, 31) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2020, 1, 1) .unwrap() .and_hms_opt(0, 0, 33) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2020, 1, 1) .unwrap() .and_hms_opt(0, 1, 1) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), ]; @@ -831,42 +839,49 @@ mod tests { .unwrap() .and_hms_opt(6, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(6, 15, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 21) .unwrap() .and_hms_opt(20, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 21) .unwrap() .and_hms_opt(20, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(6, 45, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 21) .unwrap() .and_hms_opt(8, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), NaiveDate::from_ymd_opt(2019, 9, 22) .unwrap() .and_hms_opt(9, 10, 11) .unwrap() + .and_utc() .timestamp_nanos_opt() .unwrap(), ];