[Opt](exec)(multi-catalog) Opt date type reading. (#29571)
This commit is contained in:
@ -2668,17 +2668,14 @@ char* DateV2Value<T>::to_string(char* to, int scale) const {
|
||||
return to + len + 1;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
typename DateV2Value<T>::underlying_value DateV2Value<T>::to_date_int_val() const {
|
||||
return int_val_;
|
||||
}
|
||||
// [1900-01-01, 2039-12-31]
|
||||
static std::array<DateV2Value<DateV2ValueType>, date_day_offset_dict::DICT_DAYS>
|
||||
DATE_DAY_OFFSET_ITEMS;
|
||||
// [1900-01-01, 2039-12-31]
|
||||
static std::array<std::array<std::array<int, 31>, 12>, 140> DATE_DAY_OFFSET_DICT;
|
||||
std::array<DateV2Value<DateV2ValueType>, date_day_offset_dict::DICT_DAYS>
|
||||
date_day_offset_dict::DATE_DAY_OFFSET_ITEMS;
|
||||
|
||||
static bool DATE_DAY_OFFSET_ITEMS_INIT = false;
|
||||
// [1900-01-01, 2039-12-31]
|
||||
std::array<std::array<std::array<int, 31>, 12>, 140> date_day_offset_dict::DATE_DAY_OFFSET_DICT;
|
||||
|
||||
bool date_day_offset_dict::DATE_DAY_OFFSET_ITEMS_INIT = false;
|
||||
|
||||
date_day_offset_dict date_day_offset_dict::instance = date_day_offset_dict();
|
||||
|
||||
@ -2718,16 +2715,6 @@ date_day_offset_dict::date_day_offset_dict() {
|
||||
DATE_DAY_OFFSET_ITEMS_INIT = true;
|
||||
}
|
||||
|
||||
DateV2Value<DateV2ValueType> date_day_offset_dict::operator[](int day) const {
|
||||
int index = day + DAY_BEFORE_EPOCH;
|
||||
if (LIKELY(index >= 0 && index < DICT_DAYS)) {
|
||||
return DATE_DAY_OFFSET_ITEMS[index];
|
||||
} else {
|
||||
DateV2Value<DateV2ValueType> d = DATE_DAY_OFFSET_ITEMS[0];
|
||||
return d += index;
|
||||
}
|
||||
}
|
||||
|
||||
int date_day_offset_dict::daynr(int year, int month, int day) const {
|
||||
return DATE_DAY_OFFSET_DICT[year - START_YEAR][month - 1][day - 1];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user