Skip to content

Commit c816d73

Browse files
committed
Intermediate changes
commit_hash:e18a239f7b892af4d53c13670fad31ffae66aabb
1 parent 73f2e37 commit c816d73

File tree

1 file changed

+87
-8
lines changed

1 file changed

+87
-8
lines changed

yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h

Lines changed: 87 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22

3+
#include <util/digest/numeric.h>
34
#include <util/generic/maybe.h>
45
#include <util/generic/string.h>
56
#include <vector>
@@ -50,9 +51,6 @@ struct TError {
5051
TString ErrorMessage;
5152
};
5253

53-
struct TStatistics {
54-
};
55-
5654
struct TYtTableRef {
5755
TString Path;
5856
TString Cluster;
@@ -63,24 +61,104 @@ struct TFmrTableRef {
6361
TString TableId;
6462
};
6563

64+
struct TTableRange {
65+
TString PartId;
66+
ui64 MinChunk = 0;
67+
ui64 MaxChunk;
68+
};
69+
70+
struct TFmrTableInputRef {
71+
TString TableId;
72+
std::vector<TTableRange> TableRanges;
73+
};
74+
75+
struct TFmrTableOutputRef {
76+
TString TableId;
77+
TString PartId;
78+
79+
bool operator==(const TFmrTableOutputRef&) const = default;
80+
};
81+
82+
struct TTableStats {
83+
ui64 Chunks = 0;
84+
ui64 Rows;
85+
ui64 DataWeight;
86+
};
87+
88+
} // namespace NYql::NFmr
89+
90+
namespace std {
91+
template<>
92+
struct hash<NYql::NFmr::TFmrTableOutputRef> {
93+
size_t operator()(const NYql::NFmr::TFmrTableOutputRef& ref) const {
94+
return CombineHashes(hash<TString>()(ref.TableId), hash<TString>()(ref.PartId));
95+
}
96+
};
97+
}
98+
99+
namespace NYql::NFmr {
100+
101+
struct TStatistics {
102+
std::unordered_map<TFmrTableOutputRef, TTableStats> OutputTables;
103+
};
104+
105+
//пока оставляем и со старым названием, чтобы тесты не падали, но после рефактора надо будет убрать
66106
using TTableRef = std::variant<TYtTableRef, TFmrTableRef>;
67107

68-
struct TUploadTaskParams {
108+
using TOperationTableRef = std::variant<TYtTableRef, TFmrTableRef>;
109+
110+
using TTaskTableRef = std::variant<TYtTableRef, TFmrTableInputRef, TFmrTableOutputRef>;
111+
112+
struct TUploadOperationParams {
113+
TFmrTableRef Input;
114+
TYtTableRef Output;
115+
};
116+
117+
struct TUploadTaskParams { // DEPRECATED TODO REMOVE
69118
TFmrTableRef Input;
70119
TYtTableRef Output;
71120
};
72121

73-
struct TDownloadTaskParams {
122+
struct TUploadTaskParamsNew {
123+
TFmrTableInputRef Input;
124+
TYtTableRef Output;
125+
};
126+
127+
struct TDownloadOperationParams {
128+
TYtTableRef Input;
129+
TFmrTableRef Output;
130+
};
131+
132+
struct TDownloadTaskParams { // DEPRECATED TODO REMOVE
74133
TYtTableRef Input;
75134
TFmrTableRef Output;
76135
};
77136

78-
struct TMergeTaskParams {
79-
std::vector<TTableRef> Input;
137+
struct TDownloadTaskParamsNew {
138+
TYtTableRef Input;
139+
TFmrTableOutputRef Output;
140+
};
141+
142+
struct TMergeOperationParams {
143+
std::vector<TOperationTableRef> Input;
80144
TFmrTableRef Output;
81145
};
82146

83-
using TTaskParams = std::variant<TUploadTaskParams, TDownloadTaskParams, TMergeTaskParams>;
147+
struct TMergeTaskParams { // DEPRECATED TODO REMOVE
148+
std::vector<TOperationTableRef> Input;
149+
TFmrTableRef Output;
150+
};
151+
152+
struct TMergeTaskParamsNew {
153+
std::vector<TTaskTableRef> Input;
154+
TFmrTableOutputRef Output;
155+
};
156+
157+
using TOperationParams = std::variant<TUploadOperationParams, TDownloadOperationParams, TMergeOperationParams>;
158+
159+
using TTaskParams = std::variant<TUploadTaskParams, TDownloadTaskParams, TMergeTaskParams>; // DEPRECATED TODO REMOVE
160+
161+
using TTaskParamsNew = std::variant<TUploadTaskParamsNew, TDownloadTaskParamsNew, TMergeTaskParamsNew>;
84162

85163
struct TTask: public TThrRefBase {
86164
TTask() = default;
@@ -110,6 +188,7 @@ struct TTaskState: public TThrRefBase {
110188
ETaskStatus TaskStatus;
111189
TString TaskId;
112190
TMaybe<TFmrError> TaskErrorMessage;
191+
TStatistics Stats;
113192

114193
using TPtr = TIntrusivePtr<TTaskState>;
115194
};

0 commit comments

Comments
 (0)