github-actions[bot] commented on code in PR #30452: URL: https://github.com/apache/doris/pull/30452#discussion_r1467793080
########## be/src/vec/runtime/vdatetime_value.cpp: ########## @@ -1199,26 +1191,40 @@ // change this method should also change that. bool VecDateTimeValue::from_date_format_str(const char* format, int format_len, const char* value, int value_len, const char** sub_val_end) { + if (format_len <= 0) [[unlikely]] { + return false; + } const char* ptr = format; const char* end = format + format_len; const char* val = value; const char* val_end = value + value_len; - bool date_part_used = false; - bool time_part_used = false; - bool frac_part_used = false; - bool already_set_time_part = false; - - int day_part = 0; + bool already_set_time_part = false; // skip time part in the end's setting. + + uint32_t part_used = 0; + constexpr int year_part = 1U << 0; + constexpr int month_part = 1U << 1; + constexpr int day_part = 1U << 2; + constexpr int weekday_part = 1U << 3; + constexpr int yearday_part = 1U << 4; + constexpr int week_num_part = 1U << 5; + constexpr int date_part = + year_part | month_part | day_part | weekday_part | year_part | week_num_part; Review Comment: warning: operator has equivalent nested operands [misc-redundant-expression] ```cpp year_part | month_part | day_part | weekday_part | year_part | week_num_part; ^ ``` ########## be/src/vec/runtime/vdatetime_value.cpp: ########## @@ -2170,17 +2146,32 @@ template <typename T> bool DateV2Value<T>::from_date_format_str(const char* format, int format_len, const char* value, int value_len, const char** sub_val_end) { + if (format_len <= 0) [[unlikely]] { + return false; + } const char* ptr = format; const char* end = format + format_len; const char* val = value; const char* val_end = value + value_len; - bool date_part_used = false; - bool time_part_used = false; - bool frac_part_used = false; - bool already_set_time_part = false; - - int day_part = 0; + bool already_set_time_part = false; // skip time part in the end's setting. + + uint32_t part_used = 0; + constexpr int year_part = 1U << 0; + constexpr int month_part = 1U << 1; + constexpr int day_part = 1U << 2; + constexpr int weekday_part = 1U << 3; + constexpr int yearday_part = 1U << 4; + constexpr int week_num_part = 1U << 5; + constexpr int date_part = + year_part | month_part | day_part | weekday_part | year_part | week_num_part; Review Comment: warning: operator has equivalent nested operands [misc-redundant-expression] ```cpp year_part | month_part | day_part | weekday_part | year_part | week_num_part; ^ ``` ########## be/src/vec/runtime/vdatetime_value.cpp: ########## @@ -1199,26 +1191,40 @@ static int check_word(const char* lib[], const char* str, const char* end, const // change this method should also change that. bool VecDateTimeValue::from_date_format_str(const char* format, int format_len, const char* value, Review Comment: warning: function 'from_date_format_str' has cognitive complexity of 198 (threshold 50) [readability-function-cognitive-complexity] ```cpp bool VecDateTimeValue::from_date_format_str(const char* format, int format_len, const char* value, ^ ``` <details> <summary>Additional context</summary> **be/src/vec/runtime/vdatetime_value.cpp:1193:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (format_len <= 0) [[unlikely]] { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1229:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp while (ptr < end && val < val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1229:** +1 ```cpp while (ptr < end && val < val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1231:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp while (val < val_end && isspace(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1231:** +1 ```cpp while (val < val_end && isspace(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1234:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (val >= val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1238:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (*ptr == '%' && ptr + 1 < end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1238:** +1 ```cpp if (*ptr == '%' && ptr + 1 < end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1242:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp switch (*ptr++) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1247:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1250:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp int_value += int_value >= 70 ? 1900 : 2000; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1258:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1261:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (tmp - val <= 2) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1262:** +5, including nesting penalty of 4, nesting level increased to 5 ```cpp int_value += int_value >= 70 ? 1900 : 2000; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1272:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1281:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1289:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1299:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1308:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1325:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1335:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1346:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1357:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1364:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if ((val_end - val) < 2 || toupper(*(val + 1)) != 'M' || !hour_system_12) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1364:** +1 ```cpp if ((val_end - val) < 2 || toupper(*(val + 1)) != 'M' || !hour_system_12) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1367:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (toupper(*val) == 'P') { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1376:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1385:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1394:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1397:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value >= 7) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1400:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value == 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1409:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1420:** +1 ```cpp sunday_first = (*(ptr - 1) == 'U' || *(ptr - 1) == 'V'); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1422:** +1 ```cpp strict_week_number = (*(ptr - 1) == 'V' || *(ptr - 1) == 'v'); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1424:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1428:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (week_num > 53 || (strict_week_number && week_num == 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1428:** +1 ```cpp if (week_num > 53 || (strict_week_number && week_num == 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1428:** +1 ```cpp if (week_num > 53 || (strict_week_number && week_num == 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1439:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1448:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!tmp_val.from_date_format_str("%I:%i:%S %p", 11, val, val_end - val, &tmp)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1461:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!tmp_val.from_date_format_str("%H:%i:%S", 8, val, val_end - val, &tmp)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1473:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp while (val < val_end && ispunct(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1473:** +1 ```cpp while (val < val_end && ispunct(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1478:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp while (val < val_end && isalpha(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1478:** +1 ```cpp while (val < val_end && isalpha(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1483:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp while (val < val_end && isdigit(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1483:** +1 ```cpp while (val < val_end && isdigit(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1488:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if ('%' != *val) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1496:** +1, nesting level increased to 2 ```cpp } else if (!isspace(*ptr)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1497:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp if (*ptr != *val) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1502:** +1, nesting level increased to 2 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1507:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (hour_system_12) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1508:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (hour > 12 || hour < 1) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1508:** +1 ```cpp if (hour > 12 || hour < 1) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1513:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (sub_val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1518:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (part_used & date_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1519:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (part_used & time_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1521:** +1, nesting level increased to 2 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1524:** +1, nesting level increased to 1 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1531:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (yearday > 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1533:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (!get_date_from_daynr(days)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1538:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (week_num >= 0 && weekday > 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1538:** +1 ```cpp if (week_num >= 0 && weekday > 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1540:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if ((strict_week_number && ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1541:** +1 ```cpp (strict_week_number_year < 0 || strict_week_number_year_type != sunday_first)) || ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1540:** +1 ```cpp if ((strict_week_number && ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1541:** +1 ```cpp (strict_week_number_year < 0 || strict_week_number_year_type != sunday_first)) || ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1542:** +1 ```cpp (!strict_week_number && strict_week_number_year >= 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1546:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp doris::calc_daynr(strict_week_number ? strict_week_number_year : year, 1, 1); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1550:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (sunday_first) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1551:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp days += ((weekday_b == 0) ? 0 : 7) - weekday_b + (week_num - 1) * 7 + weekday % 7; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1552:** +1, nesting level increased to 2 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1553:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp days += ((weekday_b <= 3) ? 0 : 7) - weekday_b + (week_num - 1) * 7 + weekday - 1; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1555:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (!get_date_from_daynr(days)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1563:** +1 ```cpp bool already_set_date_part = yearday > 0 || (week_num >= 0 && weekday > 0); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1563:** +1 ```cpp bool already_set_date_part = yearday > 0 || (week_num >= 0 && weekday > 0); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1564:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (already_set_date_part && already_set_time_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1564:** +1 ```cpp if (already_set_date_part && already_set_time_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1568:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (!(part_used & ~date_part)) { // only date here ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1569:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (!(part_used & day_part)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1571:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp if (!(part_used & month_part)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1577:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (already_set_date_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:1580:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (already_set_time_part) { ^ ``` </details> ########## be/src/vec/runtime/vdatetime_value.cpp: ########## @@ -2170,17 +2146,32 @@ template <typename T> bool DateV2Value<T>::from_date_format_str(const char* format, int format_len, const char* value, Review Comment: warning: function 'from_date_format_str' has cognitive complexity of 239 (threshold 50) [readability-function-cognitive-complexity] ```cpp bool DateV2Value<T>::from_date_format_str(const char* format, int format_len, const char* value, ^ ``` <details> <summary>Additional context</summary> **be/src/vec/runtime/vdatetime_value.cpp:2148:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (format_len <= 0) [[unlikely]] { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2185:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp while (ptr < end && val < val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2185:** +1 ```cpp while (ptr < end && val < val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2187:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp while (val < val_end && isspace(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2187:** +1 ```cpp while (val < val_end && isspace(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2190:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (val >= val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2194:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (*ptr == '%' && ptr + 1 < end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2194:** +1 ```cpp if (*ptr == '%' && ptr + 1 < end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2198:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp switch (*ptr++) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2203:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2206:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp int_value += int_value >= 70 ? 1900 : 2000; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2214:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2217:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (tmp - val <= 2) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2218:** +5, including nesting penalty of 4, nesting level increased to 5 ```cpp int_value += int_value >= 70 ? 1900 : 2000; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2228:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2237:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2245:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2255:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2264:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2281:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2291:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2302:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2313:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp while (tmp < val_end && isdigit(*tmp)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2313:** +1 ```cpp while (tmp < val_end && isdigit(*tmp)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2317:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (tmp - val > 6) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2319:** +5, including nesting penalty of 4, nesting level increased to 5 ```cpp if (!str_to_int64(val, &tmp2, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2322:** +1, nesting level increased to 4 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2323:** +5, including nesting penalty of 4, nesting level increased to 5 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2327:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if constexpr (is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2335:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if ((val_end - val) < 2 || toupper(*(val + 1)) != 'M' || !hour_system_12) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2335:** +1 ```cpp if ((val_end - val) < 2 || toupper(*(val + 1)) != 'M' || !hour_system_12) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2338:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (toupper(*val) == 'P') { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2347:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2356:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value < 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2365:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2368:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value >= 7) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2371:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (int_value == 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2380:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2391:** +1 ```cpp sunday_first = (*(ptr - 1) == 'U' || *(ptr - 1) == 'V'); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2393:** +1 ```cpp strict_week_number = (*(ptr - 1) == 'V' || *(ptr - 1) == 'v'); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2395:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2399:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (week_num > 53 || (strict_week_number && week_num == 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2399:** +1 ```cpp if (week_num > 53 || (strict_week_number && week_num == 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2399:** +1 ```cpp if (week_num > 53 || (strict_week_number && week_num == 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2410:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if (!str_to_int64(val, &tmp, &int_value)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2418:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if constexpr (is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2420:** +5, including nesting penalty of 4, nesting level increased to 5 ```cpp if (!tmp_val.from_date_format_str("%I:%i:%S %p", 11, val, val_end - val, ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2431:** +1, nesting level increased to 4 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2436:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if constexpr (is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2438:** +5, including nesting penalty of 4, nesting level increased to 5 ```cpp if (!tmp_val.from_date_format_str("%H:%i:%S", 8, val, val_end - val, &tmp)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2448:** +1, nesting level increased to 4 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2453:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp while (val < val_end && ispunct(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2453:** +1 ```cpp while (val < val_end && ispunct(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2458:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp while (val < val_end && isalpha(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2458:** +1 ```cpp while (val < val_end && isalpha(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2463:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp while (val < val_end && isdigit(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2463:** +1 ```cpp while (val < val_end && isdigit(*val)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2468:** +4, including nesting penalty of 3, nesting level increased to 4 ```cpp if ('%' != *val) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2476:** +1, nesting level increased to 2 ```cpp } else if (!isspace(*ptr)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2477:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp if (*ptr != *val) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2482:** +1, nesting level increased to 2 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2487:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (hour_system_12) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2488:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (hour > 12 || hour < 1) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2488:** +1 ```cpp if (hour > 12 || hour < 1) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2493:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (sub_val_end) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2498:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (part_used & frac_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2499:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if constexpr (!is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2502:** +1, nesting level increased to 1 ```cpp } else if (part_used & time_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2503:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if constexpr (!is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2509:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (yearday > 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2511:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (!get_date_from_daynr(days)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2516:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (week_num >= 0 && weekday > 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2516:** +1 ```cpp if (week_num >= 0 && weekday > 0) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2518:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if ((strict_week_number && ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2519:** +1 ```cpp (strict_week_number_year < 0 || strict_week_number_year_type != sunday_first)) || ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2518:** +1 ```cpp if ((strict_week_number && ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2519:** +1 ```cpp (strict_week_number_year < 0 || strict_week_number_year_type != sunday_first)) || ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2520:** +1 ```cpp (!strict_week_number && strict_week_number_year >= 0)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2524:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp doris::calc_daynr(strict_week_number ? strict_week_number_year : year, 1, 1); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2528:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (sunday_first) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2529:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp days += ((weekday_b == 0) ? 0 : 7) - weekday_b + (week_num - 1) * 7 + weekday % 7; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2530:** +1, nesting level increased to 2 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2531:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp days += ((weekday_b <= 3) ? 0 : 7) - weekday_b + (week_num - 1) * 7 + weekday - 1; ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2533:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (!get_date_from_daynr(days)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2541:** +1 ```cpp bool already_set_date_part = yearday > 0 || (week_num >= 0 && weekday > 0); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2541:** +1 ```cpp bool already_set_date_part = yearday > 0 || (week_num >= 0 && weekday > 0); ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2542:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (already_set_date_part && already_set_time_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2542:** +1 ```cpp if (already_set_date_part && already_set_time_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2545:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (already_set_date_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2546:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if constexpr (is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2549:** +1, nesting level increased to 2 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2555:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (!(part_used & ~date_part)) { // only date here ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2556:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if (!(part_used & day_part)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2558:** +3, including nesting penalty of 2, nesting level increased to 3 ```cpp if (!(part_used & month_part)) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2564:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if (already_set_time_part) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2565:** +2, including nesting penalty of 1, nesting level increased to 2 ```cpp if constexpr (is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2569:** +1, nesting level increased to 2 ```cpp } else { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2573:** +1, including nesting penalty of 0, nesting level increased to 1 ```cpp if constexpr (is_datetime) { ^ ``` **be/src/vec/runtime/vdatetime_value.cpp:2576:** +1, nesting level increased to 1 ```cpp } else { ^ ``` </details> -- 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: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org