You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2022/07/12 16:35:06 UTC

[GitHub] [arrow-rs] tustvold commented on a diff in pull request #2052: feat(compute): Support DOW (day of week) for temporal

tustvold commented on code in PR #2052:
URL: https://github.com/apache/arrow-rs/pull/2052#discussion_r919171965


##########
arrow/src/compute/kernels/temporal.rs:
##########
@@ -112,32 +112,62 @@ macro_rules! return_compute_error_with {
     };
 }
 
-trait ChronoDateQuarter {
+// Internal trait, which is used for mapping values from DateLike structures
+trait ChronoDateExt {
     /// Returns a value in range `1..=4` indicating the quarter this date falls into
     fn quarter(&self) -> u32;
 
     /// Returns a value in range `0..=3` indicating the quarter (zero-based) this date falls into
     fn quarter0(&self) -> u32;
+
+    fn weekday_from_sunday(&self) -> i32;
 }
 
-impl ChronoDateQuarter for NaiveDateTime {
+impl<T: Datelike> ChronoDateExt for T {
     fn quarter(&self) -> u32 {
         self.quarter0() + 1
     }
 
     fn quarter0(&self) -> u32 {
         self.month0() / 3
     }
-}
 
-impl ChronoDateQuarter for NaiveDate {
-    fn quarter(&self) -> u32 {
-        self.quarter0() + 1
+    fn weekday_from_sunday(&self) -> i32 {
+        self.weekday().num_days_from_sunday() as i32
     }
+}
 
-    fn quarter0(&self) -> u32 {
-        self.month0() / 3
+/// Extracts the day of week of a given temporal array as an array of integers

Review Comment:
   ```suggestion
   /// Extracts the day of week of a given temporal array as an array of integers
   /// with each integer representing the number of days from sunday. 
   /// 
   /// For example, Sunday 1st 2010, would return 1
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org