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:41:01 UTC
[GitHub] [arrow-rs] alamb commented on a diff in pull request #2052: feat(compute): Support DOW (day of week) for temporal
alamb commented on code in PR #2052:
URL: https://github.com/apache/arrow-rs/pull/2052#discussion_r919189389
##########
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
+pub fn dow<T>(array: &PrimitiveArray<T>) -> Result<Int32Array>
Review Comment:
I wonder how this is different than `weekday`: https://docs.rs/arrow/18.0.0/arrow/compute/kernels/temporal/fn.weekday.html (defined on line 304 of this same file)?
--
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