ianmcook commented on a change in pull request #11026:
URL: https://github.com/apache/arrow/pull/11026#discussion_r703041974
##########
File path: cpp/src/arrow/compute/api_scalar.h
##########
@@ -278,6 +278,23 @@ struct ARROW_EXPORT DayOfWeekOptions : public
FunctionOptions {
uint32_t week_start;
};
+struct ARROW_EXPORT WeekOptions : public FunctionOptions {
+ public:
+ explicit WeekOptions(bool week_starts_monday = true, bool count_from_zero =
false,
+ bool first_week_in_year = false);
+ constexpr static char const kTypeName[] = "WeekOptions";
+ static WeekOptions Defaults() { return WeekOptions{}; }
+
+ /// What day does the week start with (Monday=true, Sunday=false)
+ bool week_starts_monday;
+ /// Dates from current year that fall into last ISO week of the previous
year return
+ /// 0 if true and 52 or 53 if false.
+ bool count_from_zero;
Review comment:
My understanding is that supporting all the MySQL modes is fairly
straightforward and provides the greatest flexibility. Using these three bool
options to specify the modes seems like a clever way to do it.
I do not think it is important to provide a mode here that computes
`day_of_year() / 7`. If someone wants that they can do `day_of_year() / 7`. We
can add a binding for the lubridate `week()` function that does that.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]