github-actions[bot] commented on code in PR #25570:
URL: https://github.com/apache/doris/pull/25570#discussion_r1367751431
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
Review Comment:
warning: 3652424 is a magic number; consider replacing it with a named
constant [readability-magic-numbers]
```cpp
EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
Review Comment:
warning: 3652425 is a magic number; consider replacing it with a named
constant [readability-magic-numbers]
```cpp
EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
Review Comment:
warning: 12 is a magic number; consider replacing it with a named constant
[readability-magic-numbers]
```cpp
EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
Review Comment:
warning: 9999 is a magic number; consider replacing it with a named constant
[readability-magic-numbers]
```cpp
EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
Review Comment:
warning: 31 is a magic number; consider replacing it with a named constant
[readability-magic-numbers]
```cpp
EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
Review Comment:
warning: static member accessed through instance
[readability-static-accessed-through-instance]
```cpp
EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
Review Comment:
warning: 9999 is a magic number; consider replacing it with a named constant
[readability-magic-numbers]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
Review Comment:
warning: 3652424 is a magic number; consider replacing it with a named
constant [readability-magic-numbers]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
Review Comment:
warning: 31 is a magic number; consider replacing it with a named constant
[readability-magic-numbers]
```cpp
EXPECT_TRUE(date_v2.day() == 31);
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
Review Comment:
warning: static member accessed through instance
[readability-static-accessed-through-instance]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
Review Comment:
warning: static member accessed through instance
[readability-static-accessed-through-instance]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
Review Comment:
warning: static member accessed through instance
[readability-static-accessed-through-instance]
```cpp
EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(10000));
Review Comment:
warning: 10000 is a magic number; consider replacing it with a named
constant [readability-magic-numbers]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(10000));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
Review Comment:
warning: 3652425 is a magic number; consider replacing it with a named
constant [readability-magic-numbers]
```cpp
EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(10000));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652425));
Review Comment:
warning: 3652425 is a magic number; consider replacing it with a named
constant [readability-magic-numbers]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652425));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(10000));
Review Comment:
warning: static member accessed through instance
[readability-static-accessed-through-instance]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(10000));
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
Review Comment:
warning: 10000 is a magic number; consider replacing it with a named
constant [readability-magic-numbers]
```cpp
EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
^
```
##########
be/test/vec/runtime/vdatetime_value_test.cpp:
##########
@@ -570,4 +570,172 @@ TEST(VDateTimeValueTest, date_v2_to_string_test) {
}
}
+TEST(VDateTimeValueTest, date_v2_daynr_test) {
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1970/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719528));
+ EXPECT_TRUE(date_v2.year() == 1970);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1970, 1, 1) == 719528);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1970));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719528));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1969/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(719527));
+ EXPECT_TRUE(date_v2.year() == 1969);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1969, 12, 31) == 719527);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1969));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(719527));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1900/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693961));
+ EXPECT_TRUE(date_v2.year() == 1900);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1900, 1, 1) == 693961);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(1900));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693961));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 1899/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(693960));
+ EXPECT_TRUE(date_v2.year() == 1899);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(1899, 12, 31) == 693960);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(1899));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(693960));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2039/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745094));
+ EXPECT_TRUE(date_v2.year() == 2039);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2039, 12, 31) == 745094);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_calc_daynr(2039));
+
EXPECT_TRUE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745094));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 2040/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(745095));
+ EXPECT_TRUE(date_v2.year() == 2040);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(2040, 01, 01) == 745095);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(2040));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(745095));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 0000/01/01
+ EXPECT_TRUE(date_v2.get_date_from_daynr(1));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 1);
+ EXPECT_TRUE(date_v2.day() == 1);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 01, 01) == 1);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+ EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(0));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(1));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 0000/00/01
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(0, 0, 1) == 0);
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // 9999/12/31
+ EXPECT_TRUE(date_v2.get_date_from_daynr(3652424));
+ EXPECT_TRUE(date_v2.year() == 9999);
+ EXPECT_TRUE(date_v2.month() == 12);
+ EXPECT_TRUE(date_v2.day() == 31);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(9999, 12, 31) == 3652424);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(9999));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652424));
+ }
+
+ {
+ DateV2Value<DateV2ValueType> date_v2;
+ // Invalid date 10000/01/01
+ EXPECT_FALSE(date_v2.get_date_from_daynr(3652425));
+ EXPECT_TRUE(date_v2.year() == 0);
+ EXPECT_TRUE(date_v2.month() == 0);
+ EXPECT_TRUE(date_v2.day() == 0);
+ EXPECT_TRUE(date_v2.hour() == 0);
+ EXPECT_TRUE(date_v2.minute() == 0);
+ EXPECT_TRUE(date_v2.second() == 0);
+ EXPECT_TRUE(date_v2.microsecond() == 0);
+ EXPECT_TRUE(doris::calc_daynr(10000, 01, 01) == 3652425);
+ EXPECT_TRUE(date_day_offset_dict::get().get_dict_init());
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_calc_daynr(10000));
+
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652425));
Review Comment:
warning: static member accessed through instance
[readability-static-accessed-through-instance]
```cpp
EXPECT_FALSE(date_day_offset_dict::get().can_speed_up_daynr_to_date(3652425));
^
```
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]