Coverage Report

Created: 2025-09-11 19:59

/root/doris/be/src/cloud/pb_convert.cpp
Line
Count
Source (jump to first uncovered line)
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
#include "cloud/pb_convert.h"
19
20
#include <common/logging.h>
21
#include <gen_cpp/olap_file.pb.h>
22
23
#include <utility>
24
25
namespace doris::cloud {
26
27
0
RowsetMetaCloudPB doris_rowset_meta_to_cloud(const RowsetMetaPB& in) {
28
0
    RowsetMetaCloudPB out;
29
0
    doris_rowset_meta_to_cloud(&out, in);
30
0
    return out;
31
0
}
32
33
0
RowsetMetaCloudPB doris_rowset_meta_to_cloud(RowsetMetaPB&& in) {
34
0
    RowsetMetaCloudPB out;
35
0
    doris_rowset_meta_to_cloud(&out, std::move(in));
36
0
    return out;
37
0
}
38
39
0
void doris_rowset_meta_to_cloud(RowsetMetaCloudPB* out, const RowsetMetaPB& in) {
40
    // ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
41
0
    out->set_rowset_id(in.rowset_id());
42
0
    out->set_partition_id(in.partition_id());
43
0
    out->set_tablet_id(in.tablet_id());
44
0
    out->set_txn_id(in.txn_id());
45
0
    out->set_tablet_schema_hash(in.tablet_schema_hash());
46
0
    out->set_rowset_type(in.rowset_type());
47
0
    out->set_rowset_state(in.rowset_state());
48
0
    out->set_start_version(in.start_version());
49
0
    out->set_end_version(in.end_version());
50
0
    out->set_version_hash(in.version_hash());
51
0
    out->set_num_rows(in.num_rows());
52
0
    out->set_total_disk_size(in.total_disk_size());
53
0
    out->set_data_disk_size(in.data_disk_size());
54
0
    out->set_index_disk_size(in.index_disk_size());
55
0
    out->mutable_zone_maps()->CopyFrom(in.zone_maps());
56
0
    if (in.has_delete_predicate()) {
  Branch (56:9): [True: 0, False: 0]
57
0
        out->mutable_delete_predicate()->CopyFrom(in.delete_predicate());
58
0
    }
59
0
    out->set_empty(in.empty());
60
0
    if (in.has_load_id()) {
  Branch (60:9): [True: 0, False: 0]
61
0
        out->mutable_load_id()->CopyFrom(in.load_id());
62
0
    }
63
0
    out->set_delete_flag(in.delete_flag());
64
0
    out->set_creation_time(in.creation_time());
65
0
    if (in.has_tablet_uid()) {
  Branch (65:9): [True: 0, False: 0]
66
0
        out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
67
0
    }
68
0
    out->set_num_segments(in.num_segments());
69
0
    out->set_rowset_id_v2(in.rowset_id_v2());
70
0
    out->set_resource_id(in.resource_id());
71
0
    out->set_newest_write_timestamp(in.newest_write_timestamp());
72
0
    out->mutable_segments_key_bounds()->CopyFrom(in.segments_key_bounds());
73
0
    if (in.has_tablet_schema()) {
  Branch (73:9): [True: 0, False: 0]
74
0
        doris_tablet_schema_to_cloud(out->mutable_tablet_schema(), in.tablet_schema());
75
0
    }
76
0
    out->set_txn_expiration(in.txn_expiration());
77
0
    out->set_segments_overlap_pb(in.segments_overlap_pb());
78
0
    out->set_segments_key_bounds_truncated(in.segments_key_bounds_truncated());
79
0
    out->mutable_segments_file_size()->CopyFrom(in.segments_file_size());
80
0
    out->set_index_id(in.index_id());
81
0
    if (in.has_schema_version()) {
  Branch (81:9): [True: 0, False: 0]
82
        // See cloud/src/meta-service/meta_service_schema.cpp for details.
83
0
        out->set_schema_version(in.schema_version());
84
0
    }
85
0
    out->set_enable_segments_file_size(in.enable_segments_file_size());
86
0
    out->set_has_variant_type_in_schema(in.has_has_variant_type_in_schema());
87
0
    out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
88
0
    out->mutable_inverted_index_file_info()->CopyFrom(in.inverted_index_file_info());
89
0
    out->set_source_rowset_id(in.source_rowset_id());
90
0
    out->set_source_tablet_id(in.source_tablet_id());
91
0
}
92
93
0
void doris_rowset_meta_to_cloud(RowsetMetaCloudPB* out, RowsetMetaPB&& in) {
94
    // ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
95
0
    out->set_rowset_id(in.rowset_id());
96
0
    out->set_partition_id(in.partition_id());
97
0
    out->set_tablet_id(in.tablet_id());
98
0
    out->set_txn_id(in.txn_id());
99
0
    out->set_tablet_schema_hash(in.tablet_schema_hash());
100
0
    out->set_rowset_type(in.rowset_type());
101
0
    out->set_rowset_state(in.rowset_state());
102
0
    out->set_start_version(in.start_version());
103
0
    out->set_end_version(in.end_version());
104
0
    out->set_version_hash(in.version_hash());
105
0
    out->set_num_rows(in.num_rows());
106
0
    out->set_total_disk_size(in.total_disk_size());
107
0
    out->set_data_disk_size(in.data_disk_size());
108
0
    out->set_index_disk_size(in.index_disk_size());
109
0
    out->mutable_zone_maps()->Swap(in.mutable_zone_maps());
110
0
    if (in.has_delete_predicate()) {
  Branch (110:9): [True: 0, False: 0]
111
0
        out->mutable_delete_predicate()->Swap(in.mutable_delete_predicate());
112
0
    }
113
0
    out->set_empty(in.empty());
114
0
    if (in.has_load_id()) {
  Branch (114:9): [True: 0, False: 0]
115
0
        out->mutable_load_id()->CopyFrom(in.load_id());
116
0
    }
117
0
    out->set_delete_flag(in.delete_flag());
118
0
    out->set_creation_time(in.creation_time());
119
0
    if (in.has_tablet_uid()) {
  Branch (119:9): [True: 0, False: 0]
120
0
        out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
121
0
    }
122
0
    out->set_num_segments(in.num_segments());
123
0
    out->set_rowset_id_v2(in.rowset_id_v2());
124
0
    out->set_resource_id(in.resource_id());
125
0
    out->set_newest_write_timestamp(in.newest_write_timestamp());
126
0
    out->mutable_segments_key_bounds()->Swap(in.mutable_segments_key_bounds());
127
0
    if (in.has_tablet_schema()) {
  Branch (127:9): [True: 0, False: 0]
128
0
        doris_tablet_schema_to_cloud(out->mutable_tablet_schema(),
129
0
                                     std::move(*in.mutable_tablet_schema()));
130
0
    }
131
0
    out->set_txn_expiration(in.txn_expiration());
132
0
    out->set_segments_overlap_pb(in.segments_overlap_pb());
133
0
    out->set_segments_key_bounds_truncated(in.segments_key_bounds_truncated());
134
0
    out->mutable_segments_file_size()->Swap(in.mutable_segments_file_size());
135
0
    out->set_index_id(in.index_id());
136
0
    if (in.has_schema_version()) {
  Branch (136:9): [True: 0, False: 0]
137
        // See cloud/src/meta-service/meta_service_schema.cpp for details.
138
0
        out->set_schema_version(in.schema_version());
139
0
    }
140
0
    out->set_enable_segments_file_size(in.enable_segments_file_size());
141
0
    out->set_has_variant_type_in_schema(in.has_variant_type_in_schema());
142
0
    out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
143
0
    out->mutable_inverted_index_file_info()->Swap(in.mutable_inverted_index_file_info());
144
0
    out->set_source_rowset_id(in.source_rowset_id());
145
0
    out->set_source_tablet_id(in.source_tablet_id());
146
0
}
147
148
static void fill_schema_with_dict(const RowsetMetaCloudPB& in, RowsetMetaPB* out,
149
0
                                  const SchemaCloudDictionary& dict) {
150
0
    std::unordered_map<int32_t, ColumnPB*> unique_id_map;
151
    //init map
152
0
    for (ColumnPB& column : *out->mutable_tablet_schema()->mutable_column()) {
  Branch (152:27): [True: 0, False: 0]
153
0
        unique_id_map[column.unique_id()] = &column;
154
0
    }
155
    // column info
156
0
    for (size_t i = 0; i < in.schema_dict_key_list().column_dict_key_list_size(); ++i) {
  Branch (156:24): [True: 0, False: 0]
157
0
        int dict_key = in.schema_dict_key_list().column_dict_key_list(i);
158
0
        const ColumnPB& dict_val = dict.column_dict().at(dict_key);
159
0
        ColumnPB& to_add = *out->mutable_tablet_schema()->add_column();
160
0
        to_add = dict_val;
161
0
        VLOG_DEBUG << "fill dict column " << dict_val.ShortDebugString();
Line
Count
Source
41
0
#define VLOG_DEBUG VLOG(7)
162
0
    }
163
164
    // index info
165
0
    for (size_t i = 0; i < in.schema_dict_key_list().index_info_dict_key_list_size(); ++i) {
  Branch (165:24): [True: 0, False: 0]
166
0
        int dict_key = in.schema_dict_key_list().index_info_dict_key_list(i);
167
0
        const TabletIndexPB& dict_val = dict.index_dict().at(dict_key);
168
0
        *out->mutable_tablet_schema()->add_index() = dict_val;
169
0
        VLOG_DEBUG << "fill dict index " << dict_val.ShortDebugString();
Line
Count
Source
41
0
#define VLOG_DEBUG VLOG(7)
170
0
    }
171
172
    // sparse column info
173
0
    for (size_t i = 0; i < in.schema_dict_key_list().sparse_column_dict_key_list_size(); ++i) {
  Branch (173:24): [True: 0, False: 0]
174
0
        int dict_key = in.schema_dict_key_list().sparse_column_dict_key_list(i);
175
0
        const ColumnPB& dict_val = dict.column_dict().at(dict_key);
176
0
        *unique_id_map.at(dict_val.parent_unique_id())->add_sparse_columns() = dict_val;
177
0
        VLOG_DEBUG << "fill dict sparse column" << dict_val.ShortDebugString();
Line
Count
Source
41
0
#define VLOG_DEBUG VLOG(7)
178
0
    }
179
0
}
180
181
RowsetMetaPB cloud_rowset_meta_to_doris(const RowsetMetaCloudPB& in,
182
0
                                        const SchemaCloudDictionary* dict) {
183
0
    RowsetMetaPB out;
184
0
    cloud_rowset_meta_to_doris(&out, in, dict);
185
0
    return out;
186
0
}
187
188
0
RowsetMetaPB cloud_rowset_meta_to_doris(RowsetMetaCloudPB&& in, const SchemaCloudDictionary* dict) {
189
0
    RowsetMetaPB out;
190
0
    cloud_rowset_meta_to_doris(&out, std::move(in), dict);
191
0
    return out;
192
0
}
193
194
void cloud_rowset_meta_to_doris(RowsetMetaPB* out, const RowsetMetaCloudPB& in,
195
0
                                const SchemaCloudDictionary* dict) {
196
    // ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
197
0
    out->set_rowset_id(in.rowset_id());
198
0
    out->set_partition_id(in.partition_id());
199
0
    out->set_tablet_id(in.tablet_id());
200
0
    out->set_txn_id(in.txn_id());
201
0
    out->set_tablet_schema_hash(in.tablet_schema_hash());
202
0
    out->set_rowset_type(in.rowset_type());
203
0
    out->set_rowset_state(in.rowset_state());
204
0
    out->set_start_version(in.start_version());
205
0
    out->set_end_version(in.end_version());
206
0
    out->set_version_hash(in.version_hash());
207
0
    out->set_num_rows(in.num_rows());
208
0
    out->set_total_disk_size(in.total_disk_size());
209
0
    out->set_data_disk_size(in.data_disk_size());
210
0
    out->set_index_disk_size(in.index_disk_size());
211
0
    out->mutable_zone_maps()->CopyFrom(in.zone_maps());
212
0
    if (in.has_delete_predicate()) {
  Branch (212:9): [True: 0, False: 0]
213
0
        out->mutable_delete_predicate()->CopyFrom(in.delete_predicate());
214
0
    }
215
0
    out->set_empty(in.empty());
216
0
    if (in.has_load_id()) {
  Branch (216:9): [True: 0, False: 0]
217
0
        out->mutable_load_id()->CopyFrom(in.load_id());
218
0
    }
219
0
    out->set_delete_flag(in.delete_flag());
220
0
    out->set_creation_time(in.creation_time());
221
0
    if (in.has_tablet_uid()) {
  Branch (221:9): [True: 0, False: 0]
222
0
        out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
223
0
    }
224
0
    out->set_num_segments(in.num_segments());
225
0
    out->set_rowset_id_v2(in.rowset_id_v2());
226
0
    out->set_resource_id(in.resource_id());
227
0
    out->set_newest_write_timestamp(in.newest_write_timestamp());
228
0
    out->mutable_segments_key_bounds()->CopyFrom(in.segments_key_bounds());
229
0
    if (in.has_tablet_schema()) {
  Branch (229:9): [True: 0, False: 0]
230
0
        cloud_tablet_schema_to_doris(out->mutable_tablet_schema(), in.tablet_schema());
231
0
    }
232
0
    if (dict != nullptr) {
  Branch (232:9): [True: 0, False: 0]
233
0
        fill_schema_with_dict(in, out, *dict);
234
0
    }
235
0
    out->set_txn_expiration(in.txn_expiration());
236
0
    out->set_segments_overlap_pb(in.segments_overlap_pb());
237
0
    out->set_segments_key_bounds_truncated(in.segments_key_bounds_truncated());
238
0
    out->mutable_segments_file_size()->CopyFrom(in.segments_file_size());
239
0
    out->set_index_id(in.index_id());
240
0
    if (in.has_schema_version()) {
  Branch (240:9): [True: 0, False: 0]
241
        // See cloud/src/meta-service/meta_service_schema.cpp for details.
242
0
        out->set_schema_version(in.schema_version());
243
0
    }
244
0
    out->set_enable_segments_file_size(in.enable_segments_file_size());
245
0
    out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
246
0
    out->mutable_inverted_index_file_info()->CopyFrom(in.inverted_index_file_info());
247
0
    out->set_source_rowset_id(in.source_rowset_id());
248
0
    out->set_source_tablet_id(in.source_tablet_id());
249
0
}
250
251
void cloud_rowset_meta_to_doris(RowsetMetaPB* out, RowsetMetaCloudPB&& in,
252
0
                                const SchemaCloudDictionary* dict) {
253
    // ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
254
0
    out->set_rowset_id(in.rowset_id());
255
0
    out->set_partition_id(in.partition_id());
256
0
    out->set_tablet_id(in.tablet_id());
257
0
    out->set_txn_id(in.txn_id());
258
0
    out->set_tablet_schema_hash(in.tablet_schema_hash());
259
0
    out->set_rowset_type(in.rowset_type());
260
0
    out->set_rowset_state(in.rowset_state());
261
0
    out->set_start_version(in.start_version());
262
0
    out->set_end_version(in.end_version());
263
0
    out->set_version_hash(in.version_hash());
264
0
    out->set_num_rows(in.num_rows());
265
0
    out->set_total_disk_size(in.total_disk_size());
266
0
    out->set_data_disk_size(in.data_disk_size());
267
0
    out->set_index_disk_size(in.index_disk_size());
268
0
    out->mutable_zone_maps()->Swap(in.mutable_zone_maps());
269
0
    if (in.has_delete_predicate()) {
  Branch (269:9): [True: 0, False: 0]
270
0
        out->mutable_delete_predicate()->Swap(in.mutable_delete_predicate());
271
0
    }
272
0
    out->set_empty(in.empty());
273
0
    if (in.has_load_id()) {
  Branch (273:9): [True: 0, False: 0]
274
0
        out->mutable_load_id()->CopyFrom(in.load_id());
275
0
    }
276
0
    out->set_delete_flag(in.delete_flag());
277
0
    out->set_creation_time(in.creation_time());
278
0
    if (in.has_tablet_uid()) {
  Branch (278:9): [True: 0, False: 0]
279
0
        out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
280
0
    }
281
0
    out->set_num_segments(in.num_segments());
282
0
    out->set_rowset_id_v2(in.rowset_id_v2());
283
0
    out->set_resource_id(in.resource_id());
284
0
    out->set_newest_write_timestamp(in.newest_write_timestamp());
285
0
    out->mutable_segments_key_bounds()->Swap(in.mutable_segments_key_bounds());
286
0
    if (in.has_tablet_schema()) {
  Branch (286:9): [True: 0, False: 0]
287
0
        cloud_tablet_schema_to_doris(out->mutable_tablet_schema(),
288
0
                                     std::move(*in.mutable_tablet_schema()));
289
0
    }
290
0
    if (dict != nullptr) {
  Branch (290:9): [True: 0, False: 0]
291
0
        fill_schema_with_dict(in, out, *dict);
292
0
    }
293
0
    out->set_txn_expiration(in.txn_expiration());
294
0
    out->set_segments_overlap_pb(in.segments_overlap_pb());
295
0
    out->set_segments_key_bounds_truncated(in.segments_key_bounds_truncated());
296
0
    out->mutable_segments_file_size()->Swap(in.mutable_segments_file_size());
297
0
    out->set_index_id(in.index_id());
298
0
    if (in.has_schema_version()) {
  Branch (298:9): [True: 0, False: 0]
299
        // See cloud/src/meta-service/meta_service_schema.cpp for details.
300
0
        out->set_schema_version(in.schema_version());
301
0
    }
302
0
    out->set_enable_segments_file_size(in.enable_segments_file_size());
303
0
    out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
304
0
    out->mutable_inverted_index_file_info()->Swap(in.mutable_inverted_index_file_info());
305
0
    out->set_source_rowset_id(in.source_rowset_id());
306
0
    out->set_source_tablet_id(in.source_tablet_id());
307
0
}
308
309
0
TabletSchemaCloudPB doris_tablet_schema_to_cloud(const TabletSchemaPB& in) {
310
0
    TabletSchemaCloudPB out;
311
0
    doris_tablet_schema_to_cloud(&out, in);
312
0
    return out;
313
0
}
314
315
0
TabletSchemaCloudPB doris_tablet_schema_to_cloud(TabletSchemaPB&& in) {
316
    // ATTN: please keep the set order aligned with the definition of proto.
317
0
    TabletSchemaCloudPB out;
318
0
    doris_tablet_schema_to_cloud(&out, std::move(in));
319
0
    return out;
320
0
}
321
322
0
void doris_tablet_schema_to_cloud(TabletSchemaCloudPB* out, const TabletSchemaPB& in) {
323
    // ATTN: please keep the set order aligned with the definition of proto.
324
0
    out->set_keys_type(in.keys_type());
325
0
    out->mutable_column()->CopyFrom(in.column());
326
0
    out->set_num_short_key_columns(in.num_short_key_columns());
327
0
    out->set_num_rows_per_row_block(in.num_rows_per_row_block());
328
0
    out->set_compress_kind(in.compress_kind());
329
0
    out->set_bf_fpp(in.bf_fpp());
330
0
    out->set_next_column_unique_id(in.next_column_unique_id());
331
0
    out->set_delete_sign_idx(in.delete_sign_idx());
332
0
    out->set_sequence_col_idx(in.sequence_col_idx());
333
0
    out->set_sort_type(in.sort_type());
334
0
    out->set_sort_col_num(in.sort_col_num());
335
0
    out->set_compression_type(in.compression_type());
336
0
    out->set_schema_version(in.schema_version());
337
0
    out->set_disable_auto_compaction(in.disable_auto_compaction());
338
0
    out->mutable_index()->CopyFrom(in.index());
339
0
    out->set_version_col_idx(in.version_col_idx());
340
0
    out->set_store_row_column(in.store_row_column());
341
0
    out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
342
0
    out->set_skip_write_index_on_load(in.skip_write_index_on_load());
343
0
    out->mutable_cluster_key_idxes()->CopyFrom(in.cluster_key_idxes());
344
0
    out->set_is_dynamic_schema(in.is_dynamic_schema());
345
0
    out->mutable_row_store_column_unique_ids()->CopyFrom(in.row_store_column_unique_ids());
346
0
    out->set_inverted_index_storage_format(in.inverted_index_storage_format());
347
0
    out->set_enable_variant_flatten_nested(in.variant_enable_flatten_nested());
348
0
    out->set_storage_page_size(in.storage_page_size());
349
0
    out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
350
0
    out->set_storage_dict_page_size(in.storage_dict_page_size());
351
0
}
352
353
0
void doris_tablet_schema_to_cloud(TabletSchemaCloudPB* out, TabletSchemaPB&& in) {
354
0
    out->set_keys_type(in.keys_type());
355
0
    out->mutable_column()->Swap(in.mutable_column());
356
0
    out->set_num_short_key_columns(in.num_short_key_columns());
357
0
    out->set_num_rows_per_row_block(in.num_rows_per_row_block());
358
0
    out->set_compress_kind(in.compress_kind());
359
0
    out->set_bf_fpp(in.bf_fpp());
360
0
    out->set_next_column_unique_id(in.next_column_unique_id());
361
0
    out->set_delete_sign_idx(in.delete_sign_idx());
362
0
    out->set_sequence_col_idx(in.sequence_col_idx());
363
0
    out->set_sort_type(in.sort_type());
364
0
    out->set_sort_col_num(in.sort_col_num());
365
0
    out->set_compression_type(in.compression_type());
366
0
    out->set_schema_version(in.schema_version());
367
0
    out->set_disable_auto_compaction(in.disable_auto_compaction());
368
0
    out->mutable_index()->Swap(in.mutable_index());
369
0
    out->set_version_col_idx(in.version_col_idx());
370
0
    out->set_store_row_column(in.store_row_column());
371
0
    out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
372
0
    out->set_skip_write_index_on_load(in.skip_write_index_on_load());
373
0
    out->mutable_cluster_key_idxes()->Swap(in.mutable_cluster_key_idxes());
374
0
    out->set_is_dynamic_schema(in.is_dynamic_schema());
375
0
    out->mutable_row_store_column_unique_ids()->Swap(in.mutable_row_store_column_unique_ids());
376
0
    out->set_inverted_index_storage_format(in.inverted_index_storage_format());
377
0
    out->set_enable_variant_flatten_nested(in.variant_enable_flatten_nested());
378
0
    out->set_storage_page_size(in.storage_page_size());
379
0
    out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
380
0
    out->set_storage_dict_page_size(in.storage_dict_page_size());
381
0
}
382
383
0
TabletSchemaPB cloud_tablet_schema_to_doris(const TabletSchemaCloudPB& in) {
384
0
    TabletSchemaPB out;
385
0
    cloud_tablet_schema_to_doris(&out, in);
386
0
    return out;
387
0
}
388
389
0
TabletSchemaPB cloud_tablet_schema_to_doris(TabletSchemaCloudPB&& in) {
390
0
    TabletSchemaPB out;
391
0
    cloud_tablet_schema_to_doris(&out, std::move(in));
392
0
    return out;
393
0
}
394
395
0
void cloud_tablet_schema_to_doris(TabletSchemaPB* out, const TabletSchemaCloudPB& in) {
396
    // ATTN: please keep the set order aligned with the definition of proto.
397
0
    out->set_keys_type(in.keys_type());
398
0
    out->mutable_column()->CopyFrom(in.column());
399
0
    out->set_num_short_key_columns(in.num_short_key_columns());
400
0
    out->set_num_rows_per_row_block(in.num_rows_per_row_block());
401
0
    out->set_compress_kind(in.compress_kind());
402
0
    out->set_bf_fpp(in.bf_fpp());
403
0
    out->set_next_column_unique_id(in.next_column_unique_id());
404
0
    out->set_delete_sign_idx(in.delete_sign_idx());
405
0
    out->set_sequence_col_idx(in.sequence_col_idx());
406
0
    out->set_sort_type(in.sort_type());
407
0
    out->set_sort_col_num(in.sort_col_num());
408
0
    out->set_compression_type(in.compression_type());
409
0
    out->set_schema_version(in.schema_version());
410
0
    out->set_disable_auto_compaction(in.disable_auto_compaction());
411
0
    out->mutable_index()->CopyFrom(in.index());
412
0
    out->set_version_col_idx(in.version_col_idx());
413
0
    out->set_store_row_column(in.store_row_column());
414
0
    out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
415
0
    out->set_skip_write_index_on_load(in.skip_write_index_on_load());
416
0
    out->mutable_cluster_key_idxes()->CopyFrom(in.cluster_key_idxes());
417
0
    out->set_is_dynamic_schema(in.is_dynamic_schema());
418
0
    out->mutable_row_store_column_unique_ids()->CopyFrom(in.row_store_column_unique_ids());
419
0
    out->set_inverted_index_storage_format(in.inverted_index_storage_format());
420
0
    out->set_variant_enable_flatten_nested(in.enable_variant_flatten_nested());
421
0
    out->set_storage_page_size(in.storage_page_size());
422
0
    out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
423
0
    out->set_storage_dict_page_size(in.storage_dict_page_size());
424
0
}
425
426
0
void cloud_tablet_schema_to_doris(TabletSchemaPB* out, TabletSchemaCloudPB&& in) {
427
    // ATTN: please keep the set order aligned with the definition of proto.
428
0
    out->set_keys_type(in.keys_type());
429
0
    out->mutable_column()->Swap(in.mutable_column());
430
0
    out->set_num_short_key_columns(in.num_short_key_columns());
431
0
    out->set_num_rows_per_row_block(in.num_rows_per_row_block());
432
0
    out->set_compress_kind(in.compress_kind());
433
0
    out->set_bf_fpp(in.bf_fpp());
434
0
    out->set_next_column_unique_id(in.next_column_unique_id());
435
0
    out->set_delete_sign_idx(in.delete_sign_idx());
436
0
    out->set_sequence_col_idx(in.sequence_col_idx());
437
0
    out->set_sort_type(in.sort_type());
438
0
    out->set_sort_col_num(in.sort_col_num());
439
0
    out->set_compression_type(in.compression_type());
440
0
    out->set_schema_version(in.schema_version());
441
0
    out->set_disable_auto_compaction(in.disable_auto_compaction());
442
0
    out->mutable_index()->Swap(in.mutable_index());
443
0
    out->set_version_col_idx(in.version_col_idx());
444
0
    out->set_store_row_column(in.store_row_column());
445
0
    out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
446
0
    out->set_skip_write_index_on_load(in.skip_write_index_on_load());
447
0
    out->mutable_cluster_key_idxes()->Swap(in.mutable_cluster_key_idxes());
448
0
    out->set_is_dynamic_schema(in.is_dynamic_schema());
449
0
    out->mutable_row_store_column_unique_ids()->Swap(in.mutable_row_store_column_unique_ids());
450
0
    out->set_inverted_index_storage_format(in.inverted_index_storage_format());
451
0
    out->set_variant_enable_flatten_nested(in.enable_variant_flatten_nested());
452
0
    out->set_storage_page_size(in.storage_page_size());
453
0
    out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
454
0
    out->set_storage_dict_page_size(in.storage_dict_page_size());
455
0
}
456
457
0
TabletMetaCloudPB doris_tablet_meta_to_cloud(const TabletMetaPB& in) {
458
0
    TabletMetaCloudPB out;
459
0
    doris_tablet_meta_to_cloud(&out, in);
460
0
    return out;
461
0
}
462
463
0
TabletMetaCloudPB doris_tablet_meta_to_cloud(TabletMetaPB&& in) {
464
0
    TabletMetaCloudPB out;
465
0
    doris_tablet_meta_to_cloud(&out, std::move(in));
466
0
    return out;
467
0
}
468
469
0
void doris_tablet_meta_to_cloud(TabletMetaCloudPB* out, const TabletMetaPB& in) {
470
    // ATTN: please keep the set order aligned with the definition of proto.
471
0
    out->set_table_id(in.table_id());
472
0
    out->set_partition_id(in.partition_id());
473
0
    out->set_tablet_id(in.tablet_id());
474
0
    out->set_schema_hash(in.schema_hash());
475
0
    out->set_shard_id(in.shard_id());
476
0
    out->set_creation_time(in.creation_time());
477
0
    out->set_cumulative_layer_point(in.cumulative_layer_point());
478
0
    out->set_tablet_state(in.tablet_state());
479
0
    if (in.has_schema()) {
  Branch (479:9): [True: 0, False: 0]
480
0
        doris_tablet_schema_to_cloud(out->mutable_schema(), in.schema());
481
0
    }
482
0
    if (in.rs_metas_size()) {
  Branch (482:9): [True: 0, False: 0]
483
0
        out->mutable_rs_metas()->Reserve(in.rs_metas_size());
484
0
        for (const auto& rs_meta : in.rs_metas()) {
  Branch (484:34): [True: 0, False: 0]
485
0
            doris_rowset_meta_to_cloud(out->add_rs_metas(), rs_meta);
486
0
        }
487
0
    }
488
    // ATTN: inc_rs_metas are deprecated, ignored here.
489
0
    if (in.has_alter_task()) {
  Branch (489:9): [True: 0, False: 0]
490
0
        out->mutable_alter_task()->CopyFrom(in.alter_task());
491
0
    }
492
0
    out->set_in_restore_mode(in.in_restore_mode());
493
0
    out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
494
0
    out->set_end_rowset_id(in.end_rowset_id());
495
0
    out->set_preferred_rowset_type(in.preferred_rowset_type());
496
0
    out->set_tablet_type(in.tablet_type());
497
0
    if (in.stale_rs_metas_size()) {
  Branch (497:9): [True: 0, False: 0]
498
0
        out->mutable_stale_rs_metas()->Reserve(in.stale_rs_metas_size());
499
0
        for (const auto& rs_meta : in.stale_rs_metas()) {
  Branch (499:34): [True: 0, False: 0]
500
0
            doris_rowset_meta_to_cloud(out->add_stale_rs_metas(), rs_meta);
501
0
        }
502
0
    }
503
0
    out->set_replica_id(in.replica_id());
504
0
    if (in.has_delete_bitmap()) {
  Branch (504:9): [True: 0, False: 0]
505
0
        out->mutable_delete_bitmap()->CopyFrom(in.delete_bitmap());
506
0
    }
507
0
    out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
508
0
    out->set_storage_policy_id(in.storage_policy_id());
509
0
    out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
510
0
    if (in.has_binlog_config()) {
  Branch (510:9): [True: 0, False: 0]
511
0
        out->mutable_binlog_config()->CopyFrom(in.binlog_config());
512
0
    }
513
0
    out->set_compaction_policy(in.compaction_policy());
514
0
    out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
515
0
    out->set_time_series_compaction_file_count_threshold(
516
0
            in.time_series_compaction_file_count_threshold());
517
0
    out->set_time_series_compaction_time_threshold_seconds(
518
0
            in.time_series_compaction_time_threshold_seconds());
519
0
    out->set_time_series_compaction_empty_rowsets_threshold(
520
0
            in.time_series_compaction_empty_rowsets_threshold());
521
0
    out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
522
0
    out->set_index_id(in.index_id());
523
0
    out->set_is_in_memory(in.is_in_memory());
524
0
    out->set_is_persistent(in.is_persistent());
525
0
    out->set_table_name(in.table_name());
526
0
    out->set_ttl_seconds(in.ttl_seconds());
527
0
    if (in.has_schema_version()) {
  Branch (527:9): [True: 0, False: 0]
528
0
        out->set_schema_version(in.schema_version());
529
0
    }
530
0
    if (in.has_encryption_algorithm()) {
  Branch (530:9): [True: 0, False: 0]
531
0
        out->set_encryption_algorithm(in.encryption_algorithm());
532
0
    }
533
0
}
534
535
0
void doris_tablet_meta_to_cloud(TabletMetaCloudPB* out, TabletMetaPB&& in) {
536
    // ATTN: please keep the set order aligned with the definition of proto.
537
0
    out->set_table_id(in.table_id());
538
0
    out->set_partition_id(in.partition_id());
539
0
    out->set_tablet_id(in.tablet_id());
540
0
    out->set_schema_hash(in.schema_hash());
541
0
    out->set_shard_id(in.shard_id());
542
0
    out->set_creation_time(in.creation_time());
543
0
    out->set_cumulative_layer_point(in.cumulative_layer_point());
544
0
    out->set_tablet_state(in.tablet_state());
545
0
    if (in.has_schema()) {
  Branch (545:9): [True: 0, False: 0]
546
0
        doris_tablet_schema_to_cloud(out->mutable_schema(), std::move(*in.mutable_schema()));
547
0
    }
548
0
    if (in.rs_metas_size()) {
  Branch (548:9): [True: 0, False: 0]
549
0
        size_t rs_metas_size = in.rs_metas_size();
550
0
        out->mutable_rs_metas()->Reserve(rs_metas_size);
551
0
        for (size_t i = 0; i < rs_metas_size; ++i) {
  Branch (551:28): [True: 0, False: 0]
552
0
            doris_rowset_meta_to_cloud(out->add_rs_metas(), std::move(*in.mutable_rs_metas(i)));
553
0
        }
554
0
    }
555
    // ATTN: inc_rs_metas are deprecated, ignored here.
556
0
    if (in.has_alter_task()) {
  Branch (556:9): [True: 0, False: 0]
557
0
        out->mutable_alter_task()->Swap(in.mutable_alter_task());
558
0
    }
559
0
    out->set_in_restore_mode(in.in_restore_mode());
560
0
    out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
561
0
    out->set_end_rowset_id(in.end_rowset_id());
562
0
    out->set_preferred_rowset_type(in.preferred_rowset_type());
563
0
    out->set_tablet_type(in.tablet_type());
564
0
    if (in.stale_rs_metas_size()) {
  Branch (564:9): [True: 0, False: 0]
565
0
        size_t rs_metas_size = in.stale_rs_metas_size();
566
0
        out->mutable_stale_rs_metas()->Reserve(rs_metas_size);
567
0
        for (size_t i = 0; i < rs_metas_size; i++) {
  Branch (567:28): [True: 0, False: 0]
568
0
            doris_rowset_meta_to_cloud(out->add_stale_rs_metas(),
569
0
                                       std::move(*in.mutable_stale_rs_metas(i)));
570
0
        }
571
0
    }
572
0
    out->set_replica_id(in.replica_id());
573
0
    if (in.has_delete_bitmap()) {
  Branch (573:9): [True: 0, False: 0]
574
0
        out->mutable_delete_bitmap()->Swap(in.mutable_delete_bitmap());
575
0
    }
576
0
    out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
577
0
    out->set_storage_policy_id(in.storage_policy_id());
578
0
    out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
579
0
    if (in.has_binlog_config()) {
  Branch (579:9): [True: 0, False: 0]
580
0
        out->mutable_binlog_config()->Swap(in.mutable_binlog_config());
581
0
    }
582
0
    out->set_compaction_policy(in.compaction_policy());
583
0
    out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
584
0
    out->set_time_series_compaction_file_count_threshold(
585
0
            in.time_series_compaction_file_count_threshold());
586
0
    out->set_time_series_compaction_time_threshold_seconds(
587
0
            in.time_series_compaction_time_threshold_seconds());
588
0
    out->set_time_series_compaction_empty_rowsets_threshold(
589
0
            in.time_series_compaction_empty_rowsets_threshold());
590
0
    out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
591
0
    out->set_index_id(in.index_id());
592
0
    out->set_is_in_memory(in.is_in_memory());
593
0
    out->set_is_persistent(in.is_persistent());
594
0
    out->set_table_name(in.table_name());
595
0
    out->set_ttl_seconds(in.ttl_seconds());
596
0
    if (in.has_schema_version()) {
  Branch (596:9): [True: 0, False: 0]
597
0
        out->set_schema_version(in.schema_version());
598
0
    }
599
0
    if (in.has_encryption_algorithm()) {
  Branch (599:9): [True: 0, False: 0]
600
0
        out->set_encryption_algorithm(in.encryption_algorithm());
601
0
    }
602
0
}
603
604
0
TabletMetaPB cloud_tablet_meta_to_doris(const TabletMetaCloudPB& in) {
605
0
    TabletMetaPB out;
606
0
    cloud_tablet_meta_to_doris(&out, in);
607
0
    return out;
608
0
}
609
610
0
TabletMetaPB cloud_tablet_meta_to_doris(TabletMetaCloudPB&& in) {
611
0
    TabletMetaPB out;
612
0
    cloud_tablet_meta_to_doris(&out, std::move(in));
613
0
    return out;
614
0
}
615
616
0
void cloud_tablet_meta_to_doris(TabletMetaPB* out, const TabletMetaCloudPB& in) {
617
    // ATTN: please keep the set order aligned with the definition of proto.
618
0
    out->set_table_id(in.table_id());
619
0
    out->set_partition_id(in.partition_id());
620
0
    out->set_tablet_id(in.tablet_id());
621
0
    out->set_schema_hash(in.schema_hash());
622
0
    out->set_shard_id(in.shard_id());
623
0
    out->set_creation_time(in.creation_time());
624
0
    out->set_cumulative_layer_point(in.cumulative_layer_point());
625
0
    out->set_tablet_state(in.tablet_state());
626
0
    if (in.has_schema()) {
  Branch (626:9): [True: 0, False: 0]
627
0
        cloud_tablet_schema_to_doris(out->mutable_schema(), in.schema());
628
0
    }
629
0
    if (in.rs_metas_size()) {
  Branch (629:9): [True: 0, False: 0]
630
0
        out->mutable_rs_metas()->Reserve(in.rs_metas_size());
631
0
        for (const auto& rs_meta : in.rs_metas()) {
  Branch (631:34): [True: 0, False: 0]
632
0
            cloud_rowset_meta_to_doris(out->add_rs_metas(), rs_meta);
633
0
        }
634
0
    }
635
    // ATTN: inc_rs_metas are deprecated, ignored here.
636
0
    if (in.has_alter_task()) {
  Branch (636:9): [True: 0, False: 0]
637
0
        out->mutable_alter_task()->CopyFrom(in.alter_task());
638
0
    }
639
0
    out->set_in_restore_mode(in.in_restore_mode());
640
0
    out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
641
0
    out->set_end_rowset_id(in.end_rowset_id());
642
0
    out->set_preferred_rowset_type(in.preferred_rowset_type());
643
0
    out->set_tablet_type(in.tablet_type());
644
0
    if (in.stale_rs_metas_size()) {
  Branch (644:9): [True: 0, False: 0]
645
0
        out->mutable_stale_rs_metas()->Reserve(in.stale_rs_metas_size());
646
0
        for (const auto& rs_meta : in.stale_rs_metas()) {
  Branch (646:34): [True: 0, False: 0]
647
0
            cloud_rowset_meta_to_doris(out->add_stale_rs_metas(), rs_meta);
648
0
        }
649
0
    }
650
0
    out->set_replica_id(in.replica_id());
651
0
    if (in.has_delete_bitmap()) {
  Branch (651:9): [True: 0, False: 0]
652
0
        out->mutable_delete_bitmap()->CopyFrom(in.delete_bitmap());
653
0
    }
654
0
    out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
655
0
    out->set_storage_policy_id(in.storage_policy_id());
656
0
    out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
657
0
    if (in.has_binlog_config()) {
  Branch (657:9): [True: 0, False: 0]
658
0
        out->mutable_binlog_config()->CopyFrom(in.binlog_config());
659
0
    }
660
0
    out->set_compaction_policy(in.compaction_policy());
661
0
    out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
662
0
    out->set_time_series_compaction_file_count_threshold(
663
0
            in.time_series_compaction_file_count_threshold());
664
0
    out->set_time_series_compaction_time_threshold_seconds(
665
0
            in.time_series_compaction_time_threshold_seconds());
666
0
    out->set_time_series_compaction_empty_rowsets_threshold(
667
0
            in.time_series_compaction_empty_rowsets_threshold());
668
0
    out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
669
0
    out->set_index_id(in.index_id());
670
0
    out->set_is_in_memory(in.is_in_memory());
671
0
    out->set_is_persistent(in.is_persistent());
672
0
    out->set_table_name(in.table_name());
673
0
    out->set_ttl_seconds(in.ttl_seconds());
674
0
    if (in.has_schema_version()) {
  Branch (674:9): [True: 0, False: 0]
675
0
        out->set_schema_version(in.schema_version());
676
0
    }
677
0
    if (in.has_encryption_algorithm()) {
  Branch (677:9): [True: 0, False: 0]
678
0
        out->set_encryption_algorithm(in.encryption_algorithm());
679
0
    }
680
0
}
681
682
0
void cloud_tablet_meta_to_doris(TabletMetaPB* out, TabletMetaCloudPB&& in) {
683
    // ATTN: please keep the set order aligned with the definition of proto.
684
0
    out->set_table_id(in.table_id());
685
0
    out->set_partition_id(in.partition_id());
686
0
    out->set_tablet_id(in.tablet_id());
687
0
    out->set_schema_hash(in.schema_hash());
688
0
    out->set_shard_id(in.shard_id());
689
0
    out->set_creation_time(in.creation_time());
690
0
    out->set_cumulative_layer_point(in.cumulative_layer_point());
691
0
    out->set_tablet_state(in.tablet_state());
692
0
    if (in.has_schema()) {
  Branch (692:9): [True: 0, False: 0]
693
0
        cloud_tablet_schema_to_doris(out->mutable_schema(), std::move(*in.mutable_schema()));
694
0
    }
695
0
    if (in.rs_metas_size()) {
  Branch (695:9): [True: 0, False: 0]
696
0
        size_t rs_metas_size = in.rs_metas_size();
697
0
        out->mutable_rs_metas()->Reserve(rs_metas_size);
698
0
        for (size_t i = 0; i < rs_metas_size; ++i) {
  Branch (698:28): [True: 0, False: 0]
699
0
            cloud_rowset_meta_to_doris(out->add_rs_metas(), std::move(*in.mutable_rs_metas(i)));
700
0
        }
701
0
    }
702
    // ATTN: inc_rs_metas are deprecated, ignored here.
703
0
    if (in.has_alter_task()) {
  Branch (703:9): [True: 0, False: 0]
704
0
        out->mutable_alter_task()->Swap(in.mutable_alter_task());
705
0
    }
706
0
    out->set_in_restore_mode(in.in_restore_mode());
707
0
    out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
708
0
    out->set_end_rowset_id(in.end_rowset_id());
709
0
    out->set_preferred_rowset_type(in.preferred_rowset_type());
710
0
    out->set_tablet_type(in.tablet_type());
711
0
    if (in.stale_rs_metas_size()) {
  Branch (711:9): [True: 0, False: 0]
712
0
        size_t rs_metas_size = in.stale_rs_metas_size();
713
0
        out->mutable_stale_rs_metas()->Reserve(rs_metas_size);
714
0
        for (size_t i = 0; i < rs_metas_size; i++) {
  Branch (714:28): [True: 0, False: 0]
715
0
            cloud_rowset_meta_to_doris(out->add_stale_rs_metas(),
716
0
                                       std::move(*in.mutable_stale_rs_metas(i)));
717
0
        }
718
0
    }
719
0
    out->set_replica_id(in.replica_id());
720
0
    if (in.has_delete_bitmap()) {
  Branch (720:9): [True: 0, False: 0]
721
0
        out->mutable_delete_bitmap()->Swap(in.mutable_delete_bitmap());
722
0
    }
723
0
    out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
724
0
    out->set_storage_policy_id(in.storage_policy_id());
725
0
    out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
726
0
    if (in.has_binlog_config()) {
  Branch (726:9): [True: 0, False: 0]
727
0
        out->mutable_binlog_config()->Swap(in.mutable_binlog_config());
728
0
    }
729
0
    out->set_compaction_policy(in.compaction_policy());
730
0
    out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
731
0
    out->set_time_series_compaction_file_count_threshold(
732
0
            in.time_series_compaction_file_count_threshold());
733
0
    out->set_time_series_compaction_time_threshold_seconds(
734
0
            in.time_series_compaction_time_threshold_seconds());
735
0
    out->set_time_series_compaction_empty_rowsets_threshold(
736
0
            in.time_series_compaction_empty_rowsets_threshold());
737
0
    out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
738
0
    out->set_index_id(in.index_id());
739
0
    out->set_is_in_memory(in.is_in_memory());
740
0
    out->set_is_persistent(in.is_persistent());
741
0
    out->set_table_name(in.table_name());
742
0
    out->set_ttl_seconds(in.ttl_seconds());
743
0
    if (in.has_schema_version()) {
  Branch (743:9): [True: 0, False: 0]
744
0
        out->set_schema_version(in.schema_version());
745
0
    }
746
0
    if (in.has_encryption_algorithm()) {
  Branch (746:9): [True: 0, False: 0]
747
0
        out->set_encryption_algorithm(in.encryption_algorithm());
748
0
    }
749
0
}
750
751
} // namespace doris::cloud