diff options
author | max42 <[email protected]> | 2023-06-30 03:37:03 +0300 |
---|---|---|
committer | max42 <[email protected]> | 2023-06-30 03:37:03 +0300 |
commit | fac2bd72b4b31ec3238292caf8fb2a8aaa6d6c4a (patch) | |
tree | b8cbc1deb00309c7f1a7ab6df520a76cf0b5c6d7 /yt/cpp/mapreduce/interface/serialize.h | |
parent | 7bf166b1a7ed0af927f230022b245af618e998c1 (diff) |
YT-19324: move YT provider to ydb/library/yql
This commit is formed by the following script: https://paste.yandex-team.ru/6f92e4b8-efc5-4d34-948b-15ee2accd7e7/text.
This commit has zero effect on all projects that depend on YQL.
The summary of changes:
- `yql/providers/yt -> ydb/library/yql/providers/yt `- the whole implementation of YT provider is moved into YDB code base for further export as a part of YT YQL plugin shared library;
- `yql/providers/stat/{expr_nodes,uploader} -> ydb/library/yql/providers/stat/{expr_nodes,uploader}` - a small interface without implementation and the description of stat expr nodes;
- `yql/core/extract_predicate/ut -> ydb/library/yql/core/extract_predicate/ut`;
- `yql/core/{ut,ut_common} -> ydb/library/yql/core/{ut,ut_common}`;
- `yql/core` is gone;
- `yql/library/url_preprocessing -> ydb/library/yql/core/url_preprocessing`.
**NB**: all new targets inside `ydb/` are under `IF (NOT CMAKE_EXPORT)` clause which disables them from open-source cmake generation and ya make build. They will be enabled in the subsequent commits.
Diffstat (limited to 'yt/cpp/mapreduce/interface/serialize.h')
-rw-r--r-- | yt/cpp/mapreduce/interface/serialize.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/yt/cpp/mapreduce/interface/serialize.h b/yt/cpp/mapreduce/interface/serialize.h new file mode 100644 index 00000000000..223dd446ba5 --- /dev/null +++ b/yt/cpp/mapreduce/interface/serialize.h @@ -0,0 +1,90 @@ +#pragma once + +/// +/// @file yt/cpp/mapreduce/interface/serialize.h +/// +/// Header containing declaration of functions for serializing to/from YSON. + +#include "common.h" + +#include <library/cpp/type_info/fwd.h> + +namespace NYT::NYson { +struct IYsonConsumer; +} // namespace NYT::NYson + +namespace NYT { + +//////////////////////////////////////////////////////////////////////////////// + +template <class T> +void Deserialize(TMaybe<T>& value, const TNode& node) +{ + value.ConstructInPlace(); + Deserialize(value.GetRef(), node); +} + +template <class T> +void Deserialize(TVector<T>& value, const TNode& node) +{ + for (const auto& element : node.AsList()) { + value.emplace_back(); + Deserialize(value.back(), element); + } +} + +template <class T> +void Deserialize(THashMap<TString, T>& value, const TNode& node) +{ + for (const auto& item : node.AsMap()) { + Deserialize(value[item.first], item.second); + } +} + +//////////////////////////////////////////////////////////////////////////////// + +void Serialize(const TKey& key, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TKey& key, const TNode& node); + +void Serialize(const TSortColumns& sortColumns, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TSortColumns& sortColumns, const TNode& node); + +void Serialize(const TColumnNames& columnNames, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TColumnNames& columnNames, const TNode& node); + +void Serialize(const TSortColumn& sortColumn, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TSortColumn& sortColumn, const TNode& node); + +void Serialize(const TKeyBound& keyBound, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TKeyBound& keyBound, const TNode& node); + +void Serialize(const TReadLimit& readLimit, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TReadLimit& readLimit, const TNode& node); + +void Serialize(const TReadRange& readRange, NYT::NYson::IYsonConsumer* consumer); + +void Serialize(const TRichYPath& path, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TRichYPath& path, const TNode& node); + +void Serialize(const TAttributeFilter& filter, NYT::NYson::IYsonConsumer* consumer); + +void Serialize(const TColumnSchema& columnSchema, NYT::NYson::IYsonConsumer* consumer); +void Serialize(const TTableSchema& tableSchema, NYT::NYson::IYsonConsumer* consumer); + +void Deserialize(EValueType& valueType, const TNode& node); +void Deserialize(TTableSchema& tableSchema, const TNode& node); +void Deserialize(TColumnSchema& columnSchema, const TNode& node); +void Deserialize(TTableColumnarStatistics& statistics, const TNode& node); +void Deserialize(TMultiTablePartition& partition, const TNode& node); +void Deserialize(TMultiTablePartitions& partitions, const TNode& node); +void Deserialize(TTabletInfo& tabletInfos, const TNode& node); + +void Serialize(const TGUID& path, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(TGUID& value, const TNode& node); + +void Serialize(const NTi::TTypePtr& type, NYT::NYson::IYsonConsumer* consumer); +void Deserialize(NTi::TTypePtr& type, const TNode& node); + +//////////////////////////////////////////////////////////////////////////////// + +} // namespace NYT |