diff options
| author | ermolovd <[email protected]> | 2025-09-17 14:47:26 +0300 |
|---|---|---|
| committer | ermolovd <[email protected]> | 2025-09-17 15:41:40 +0300 |
| commit | 9f850526f9cea07d55a28f3cab6047074e994bac (patch) | |
| tree | b73f764928ebb4e27f1942196dba288081a5264b /yt/cpp/mapreduce/interface/serialize.cpp | |
| parent | 83cc51995c595f710b027094fcd4532535d1b8af (diff) | |
YT-15805: introduce tz-types into type info
#### Добавление поддержки временных типов с часовым поясом (TZ-типы) 📝
- 🧱 Добавлены новые примитивные типы для представления даты, даты-времени и меток времени с часовым поясом: `TzDate32`, `TzDatetime64`, `TzTimestamp64`.
- 🧪 В модульные тесты добавлены проверки корректности создания и идентификации новых временных типов.
- 📦 Обновлена логика сериализации/десериализации: TZ-типы отображаются в строковый формат при работе с различными протоколами (Skiff, protobuf, JSON).
- ⚠️ В местах чтения данных добавлена заглушка, которая выбрасывает исключение при попытке обработки новых типов — это временное решение до реализации полной поддержки.
- 🔧 Упрощена иерархия классов примитивных типов за счёт использования шаблона `TPrimitiveTypeBase`.
- 🗂️ Изменён подход к обработке неизвестных типов в нескольких компонентах: вместо явного перечисления всех поддерживаемых типов теперь используется `default` ветка с общим обработчиком.
---
**Оценить качество описания можно [здесь](https://nda.ya.ru/t/_MxIaV0Q7FnCMG**
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Code Assistant</font></a>
commit_hash:265cf034372d36f60988238e273cbfe532c2a4e5
Diffstat (limited to 'yt/cpp/mapreduce/interface/serialize.cpp')
| -rw-r--r-- | yt/cpp/mapreduce/interface/serialize.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/yt/cpp/mapreduce/interface/serialize.cpp b/yt/cpp/mapreduce/interface/serialize.cpp index 64f38e7d0a6..28a734a500b 100644 --- a/yt/cpp/mapreduce/interface/serialize.cpp +++ b/yt/cpp/mapreduce/interface/serialize.cpp @@ -136,6 +136,14 @@ void Deserialize(EValueType& valueType, const TNode& node) {"interval64", VT_INTERVAL64}, {"uuid", VT_UUID}, + + {"tz_date", VT_TZ_DATE}, + {"tz_datetime", VT_TZ_DATETIME}, + {"tz_timestamp", VT_TZ_TIMESTAMP}, + + {"tz_date32", VT_TZ_DATE32}, + {"tz_datetime64", VT_TZ_DATETIME64}, + {"tz_timestamp64", VT_TZ_TIMESTAMP64}, }; auto it = str2ValueType.find(nodeStr); |
