blob: 521729b44f6448515661e74aafeda3d95383e22b [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
#include "cloud/pb_convert.h"
#include <common/logging.h>
#include <gen_cpp/olap_file.pb.h>
#include <utility>
namespace doris::cloud {
RowsetMetaCloudPB doris_rowset_meta_to_cloud(const RowsetMetaPB& in) {
RowsetMetaCloudPB out;
doris_rowset_meta_to_cloud(&out, in);
return out;
}
RowsetMetaCloudPB doris_rowset_meta_to_cloud(RowsetMetaPB&& in) {
RowsetMetaCloudPB out;
doris_rowset_meta_to_cloud(&out, std::move(in));
return out;
}
void doris_rowset_meta_to_cloud(RowsetMetaCloudPB* out, const RowsetMetaPB& in) {
// ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
out->set_rowset_id(in.rowset_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_txn_id(in.txn_id());
out->set_tablet_schema_hash(in.tablet_schema_hash());
out->set_rowset_type(in.rowset_type());
out->set_rowset_state(in.rowset_state());
out->set_start_version(in.start_version());
out->set_end_version(in.end_version());
out->set_version_hash(in.version_hash());
out->set_num_rows(in.num_rows());
out->set_total_disk_size(in.total_disk_size());
out->set_data_disk_size(in.data_disk_size());
out->set_index_disk_size(in.index_disk_size());
out->mutable_zone_maps()->CopyFrom(in.zone_maps());
if (in.has_delete_predicate()) {
out->mutable_delete_predicate()->CopyFrom(in.delete_predicate());
}
out->set_empty(in.empty());
if (in.has_load_id()) {
out->mutable_load_id()->CopyFrom(in.load_id());
}
out->set_delete_flag(in.delete_flag());
out->set_creation_time(in.creation_time());
if (in.has_tablet_uid()) {
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
}
out->set_num_segments(in.num_segments());
out->set_rowset_id_v2(in.rowset_id_v2());
out->set_resource_id(in.resource_id());
out->set_newest_write_timestamp(in.newest_write_timestamp());
out->mutable_segments_key_bounds()->CopyFrom(in.segments_key_bounds());
if (in.has_tablet_schema()) {
doris_tablet_schema_to_cloud(out->mutable_tablet_schema(), in.tablet_schema());
}
out->set_txn_expiration(in.txn_expiration());
out->set_segments_overlap_pb(in.segments_overlap_pb());
out->mutable_segments_file_size()->CopyFrom(in.segments_file_size());
out->set_index_id(in.index_id());
if (in.has_schema_version()) {
// See cloud/src/meta-service/meta_service_schema.cpp for details.
out->set_schema_version(in.schema_version());
}
out->set_enable_segments_file_size(in.enable_segments_file_size());
out->set_has_variant_type_in_schema(in.has_has_variant_type_in_schema());
out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
out->set_compaction_level(in.compaction_level());
out->mutable_inverted_index_file_info()->CopyFrom(in.inverted_index_file_info());
out->set_source_rowset_id(in.source_rowset_id());
out->set_source_tablet_id(in.source_tablet_id());
}
void doris_rowset_meta_to_cloud(RowsetMetaCloudPB* out, RowsetMetaPB&& in) {
// ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
out->set_rowset_id(in.rowset_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_txn_id(in.txn_id());
out->set_tablet_schema_hash(in.tablet_schema_hash());
out->set_rowset_type(in.rowset_type());
out->set_rowset_state(in.rowset_state());
out->set_start_version(in.start_version());
out->set_end_version(in.end_version());
out->set_version_hash(in.version_hash());
out->set_num_rows(in.num_rows());
out->set_total_disk_size(in.total_disk_size());
out->set_data_disk_size(in.data_disk_size());
out->set_index_disk_size(in.index_disk_size());
out->mutable_zone_maps()->Swap(in.mutable_zone_maps());
if (in.has_delete_predicate()) {
out->mutable_delete_predicate()->Swap(in.mutable_delete_predicate());
}
out->set_empty(in.empty());
if (in.has_load_id()) {
out->mutable_load_id()->CopyFrom(in.load_id());
}
out->set_delete_flag(in.delete_flag());
out->set_creation_time(in.creation_time());
if (in.has_tablet_uid()) {
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
}
out->set_num_segments(in.num_segments());
out->set_rowset_id_v2(in.rowset_id_v2());
out->set_resource_id(in.resource_id());
out->set_newest_write_timestamp(in.newest_write_timestamp());
out->mutable_segments_key_bounds()->Swap(in.mutable_segments_key_bounds());
if (in.has_tablet_schema()) {
doris_tablet_schema_to_cloud(out->mutable_tablet_schema(),
std::move(*in.mutable_tablet_schema()));
}
out->set_txn_expiration(in.txn_expiration());
out->set_segments_overlap_pb(in.segments_overlap_pb());
out->mutable_segments_file_size()->Swap(in.mutable_segments_file_size());
out->set_index_id(in.index_id());
if (in.has_schema_version()) {
// See cloud/src/meta-service/meta_service_schema.cpp for details.
out->set_schema_version(in.schema_version());
}
out->set_enable_segments_file_size(in.enable_segments_file_size());
out->set_has_variant_type_in_schema(in.has_variant_type_in_schema());
out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
out->set_compaction_level(in.compaction_level());
out->mutable_inverted_index_file_info()->Swap(in.mutable_inverted_index_file_info());
out->set_source_rowset_id(in.source_rowset_id());
out->set_source_tablet_id(in.source_tablet_id());
}
static void fill_schema_with_dict(const RowsetMetaCloudPB& in, RowsetMetaPB* out,
const SchemaCloudDictionary& dict) {
std::unordered_map<int32_t, ColumnPB*> unique_id_map;
//init map
for (ColumnPB& column : *out->mutable_tablet_schema()->mutable_column()) {
unique_id_map[column.unique_id()] = &column;
}
// column info
for (size_t i = 0; i < in.schema_dict_key_list().column_dict_key_list_size(); ++i) {
int dict_key = in.schema_dict_key_list().column_dict_key_list(i);
const ColumnPB& dict_val = dict.column_dict().at(dict_key);
ColumnPB& to_add = *out->mutable_tablet_schema()->add_column();
to_add = dict_val;
VLOG_DEBUG << "fill dict column " << dict_val.ShortDebugString();
}
// index info
for (size_t i = 0; i < in.schema_dict_key_list().index_info_dict_key_list_size(); ++i) {
int dict_key = in.schema_dict_key_list().index_info_dict_key_list(i);
const TabletIndexPB& dict_val = dict.index_dict().at(dict_key);
*out->mutable_tablet_schema()->add_index() = dict_val;
VLOG_DEBUG << "fill dict index " << dict_val.ShortDebugString();
}
// sparse column info
for (size_t i = 0; i < in.schema_dict_key_list().sparse_column_dict_key_list_size(); ++i) {
int dict_key = in.schema_dict_key_list().sparse_column_dict_key_list(i);
const ColumnPB& dict_val = dict.column_dict().at(dict_key);
*unique_id_map.at(dict_val.parent_unique_id())->add_sparse_columns() = dict_val;
VLOG_DEBUG << "fill dict sparse column" << dict_val.ShortDebugString();
}
}
RowsetMetaPB cloud_rowset_meta_to_doris(const RowsetMetaCloudPB& in,
const SchemaCloudDictionary* dict) {
RowsetMetaPB out;
cloud_rowset_meta_to_doris(&out, in, dict);
return out;
}
RowsetMetaPB cloud_rowset_meta_to_doris(RowsetMetaCloudPB&& in, const SchemaCloudDictionary* dict) {
RowsetMetaPB out;
cloud_rowset_meta_to_doris(&out, std::move(in), dict);
return out;
}
void cloud_rowset_meta_to_doris(RowsetMetaPB* out, const RowsetMetaCloudPB& in,
const SchemaCloudDictionary* dict) {
// ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
out->set_rowset_id(in.rowset_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_txn_id(in.txn_id());
out->set_tablet_schema_hash(in.tablet_schema_hash());
out->set_rowset_type(in.rowset_type());
out->set_rowset_state(in.rowset_state());
out->set_start_version(in.start_version());
out->set_end_version(in.end_version());
out->set_version_hash(in.version_hash());
out->set_num_rows(in.num_rows());
out->set_total_disk_size(in.total_disk_size());
out->set_data_disk_size(in.data_disk_size());
out->set_index_disk_size(in.index_disk_size());
out->mutable_zone_maps()->CopyFrom(in.zone_maps());
if (in.has_delete_predicate()) {
out->mutable_delete_predicate()->CopyFrom(in.delete_predicate());
}
out->set_empty(in.empty());
out->mutable_load_id()->CopyFrom(in.load_id());
out->set_delete_flag(in.delete_flag());
out->set_creation_time(in.creation_time());
if (in.has_tablet_uid()) {
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
}
out->set_num_segments(in.num_segments());
out->set_rowset_id_v2(in.rowset_id_v2());
out->set_resource_id(in.resource_id());
out->set_newest_write_timestamp(in.newest_write_timestamp());
out->mutable_segments_key_bounds()->CopyFrom(in.segments_key_bounds());
if (in.has_tablet_schema()) {
cloud_tablet_schema_to_doris(out->mutable_tablet_schema(), in.tablet_schema());
}
if (dict != nullptr) {
fill_schema_with_dict(in, out, *dict);
}
out->set_txn_expiration(in.txn_expiration());
out->set_segments_overlap_pb(in.segments_overlap_pb());
out->mutable_segments_file_size()->CopyFrom(in.segments_file_size());
out->set_index_id(in.index_id());
if (in.has_schema_version()) {
// See cloud/src/meta-service/meta_service_schema.cpp for details.
out->set_schema_version(in.schema_version());
}
out->set_enable_segments_file_size(in.enable_segments_file_size());
out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
out->set_compaction_level(in.compaction_level());
out->mutable_inverted_index_file_info()->CopyFrom(in.inverted_index_file_info());
out->set_source_rowset_id(in.source_rowset_id());
out->set_source_tablet_id(in.source_tablet_id());
}
void cloud_rowset_meta_to_doris(RowsetMetaPB* out, RowsetMetaCloudPB&& in,
const SchemaCloudDictionary* dict) {
// ATTN: please keep the set order aligned with the definition of proto `TabletSchemaCloudPB`.
out->set_rowset_id(in.rowset_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_txn_id(in.txn_id());
out->set_tablet_schema_hash(in.tablet_schema_hash());
out->set_rowset_type(in.rowset_type());
out->set_rowset_state(in.rowset_state());
out->set_start_version(in.start_version());
out->set_end_version(in.end_version());
out->set_version_hash(in.version_hash());
out->set_num_rows(in.num_rows());
out->set_total_disk_size(in.total_disk_size());
out->set_data_disk_size(in.data_disk_size());
out->set_index_disk_size(in.index_disk_size());
out->mutable_zone_maps()->Swap(in.mutable_zone_maps());
if (in.has_delete_predicate()) {
out->mutable_delete_predicate()->Swap(in.mutable_delete_predicate());
}
out->set_empty(in.empty());
out->mutable_load_id()->CopyFrom(in.load_id());
out->set_delete_flag(in.delete_flag());
out->set_creation_time(in.creation_time());
if (in.has_tablet_uid()) {
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
}
out->set_num_segments(in.num_segments());
out->set_rowset_id_v2(in.rowset_id_v2());
out->set_resource_id(in.resource_id());
out->set_newest_write_timestamp(in.newest_write_timestamp());
out->mutable_segments_key_bounds()->Swap(in.mutable_segments_key_bounds());
if (in.has_tablet_schema()) {
cloud_tablet_schema_to_doris(out->mutable_tablet_schema(),
std::move(*in.mutable_tablet_schema()));
}
if (dict != nullptr) {
fill_schema_with_dict(in, out, *dict);
}
out->set_txn_expiration(in.txn_expiration());
out->set_segments_overlap_pb(in.segments_overlap_pb());
out->mutable_segments_file_size()->Swap(in.mutable_segments_file_size());
out->set_index_id(in.index_id());
if (in.has_schema_version()) {
// See cloud/src/meta-service/meta_service_schema.cpp for details.
out->set_schema_version(in.schema_version());
}
out->set_enable_segments_file_size(in.enable_segments_file_size());
out->set_enable_inverted_index_file_info(in.enable_inverted_index_file_info());
out->set_compaction_level(in.compaction_level());
out->mutable_inverted_index_file_info()->Swap(in.mutable_inverted_index_file_info());
out->set_source_rowset_id(in.source_rowset_id());
out->set_source_tablet_id(in.source_tablet_id());
}
TabletSchemaCloudPB doris_tablet_schema_to_cloud(const TabletSchemaPB& in) {
TabletSchemaCloudPB out;
doris_tablet_schema_to_cloud(&out, in);
return out;
}
TabletSchemaCloudPB doris_tablet_schema_to_cloud(TabletSchemaPB&& in) {
// ATTN: please keep the set order aligned with the definition of proto.
TabletSchemaCloudPB out;
doris_tablet_schema_to_cloud(&out, std::move(in));
return out;
}
void doris_tablet_schema_to_cloud(TabletSchemaCloudPB* out, const TabletSchemaPB& in) {
// ATTN: please keep the set order aligned with the definition of proto.
out->set_keys_type(in.keys_type());
out->mutable_column()->CopyFrom(in.column());
out->set_num_short_key_columns(in.num_short_key_columns());
out->set_num_rows_per_row_block(in.num_rows_per_row_block());
out->set_compress_kind(in.compress_kind());
out->set_bf_fpp(in.bf_fpp());
out->set_next_column_unique_id(in.next_column_unique_id());
out->set_delete_sign_idx(in.delete_sign_idx());
out->set_sequence_col_idx(in.sequence_col_idx());
out->set_sort_type(in.sort_type());
out->set_sort_col_num(in.sort_col_num());
out->set_compression_type(in.compression_type());
out->set_schema_version(in.schema_version());
out->set_disable_auto_compaction(in.disable_auto_compaction());
out->mutable_index()->CopyFrom(in.index());
out->set_version_col_idx(in.version_col_idx());
out->set_store_row_column(in.store_row_column());
out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
out->set_skip_write_index_on_load(in.skip_write_index_on_load());
out->mutable_cluster_key_uids()->CopyFrom(in.cluster_key_uids());
out->set_is_dynamic_schema(in.is_dynamic_schema());
out->mutable_row_store_column_unique_ids()->CopyFrom(in.row_store_column_unique_ids());
out->set_inverted_index_storage_format(in.inverted_index_storage_format());
out->set_enable_variant_flatten_nested(in.variant_enable_flatten_nested());
out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
out->set_storage_page_size(in.storage_page_size());
}
void doris_tablet_schema_to_cloud(TabletSchemaCloudPB* out, TabletSchemaPB&& in) {
out->set_keys_type(in.keys_type());
out->mutable_column()->Swap(in.mutable_column());
out->set_num_short_key_columns(in.num_short_key_columns());
out->set_num_rows_per_row_block(in.num_rows_per_row_block());
out->set_compress_kind(in.compress_kind());
out->set_bf_fpp(in.bf_fpp());
out->set_next_column_unique_id(in.next_column_unique_id());
out->set_delete_sign_idx(in.delete_sign_idx());
out->set_sequence_col_idx(in.sequence_col_idx());
out->set_sort_type(in.sort_type());
out->set_sort_col_num(in.sort_col_num());
out->set_compression_type(in.compression_type());
out->set_schema_version(in.schema_version());
out->set_disable_auto_compaction(in.disable_auto_compaction());
out->mutable_index()->Swap(in.mutable_index());
out->set_version_col_idx(in.version_col_idx());
out->set_store_row_column(in.store_row_column());
out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
out->set_skip_write_index_on_load(in.skip_write_index_on_load());
out->mutable_cluster_key_uids()->Swap(in.mutable_cluster_key_uids());
out->set_is_dynamic_schema(in.is_dynamic_schema());
out->mutable_row_store_column_unique_ids()->Swap(in.mutable_row_store_column_unique_ids());
out->set_inverted_index_storage_format(in.inverted_index_storage_format());
out->set_enable_variant_flatten_nested(in.variant_enable_flatten_nested());
out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
out->set_storage_page_size(in.storage_page_size());
}
TabletSchemaPB cloud_tablet_schema_to_doris(const TabletSchemaCloudPB& in) {
TabletSchemaPB out;
cloud_tablet_schema_to_doris(&out, in);
return out;
}
TabletSchemaPB cloud_tablet_schema_to_doris(TabletSchemaCloudPB&& in) {
TabletSchemaPB out;
cloud_tablet_schema_to_doris(&out, std::move(in));
return out;
}
void cloud_tablet_schema_to_doris(TabletSchemaPB* out, const TabletSchemaCloudPB& in) {
// ATTN: please keep the set order aligned with the definition of proto.
out->set_keys_type(in.keys_type());
out->mutable_column()->CopyFrom(in.column());
out->set_num_short_key_columns(in.num_short_key_columns());
out->set_num_rows_per_row_block(in.num_rows_per_row_block());
out->set_compress_kind(in.compress_kind());
out->set_bf_fpp(in.bf_fpp());
out->set_next_column_unique_id(in.next_column_unique_id());
out->set_delete_sign_idx(in.delete_sign_idx());
out->set_sequence_col_idx(in.sequence_col_idx());
out->set_sort_type(in.sort_type());
out->set_sort_col_num(in.sort_col_num());
out->set_compression_type(in.compression_type());
out->set_schema_version(in.schema_version());
out->set_disable_auto_compaction(in.disable_auto_compaction());
out->mutable_index()->CopyFrom(in.index());
out->set_version_col_idx(in.version_col_idx());
out->set_store_row_column(in.store_row_column());
out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
out->set_skip_write_index_on_load(in.skip_write_index_on_load());
out->mutable_cluster_key_uids()->CopyFrom(in.cluster_key_uids());
out->set_is_dynamic_schema(in.is_dynamic_schema());
out->mutable_row_store_column_unique_ids()->CopyFrom(in.row_store_column_unique_ids());
out->set_inverted_index_storage_format(in.inverted_index_storage_format());
out->set_variant_enable_flatten_nested(in.enable_variant_flatten_nested());
out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
out->set_storage_page_size(in.storage_page_size());
}
void cloud_tablet_schema_to_doris(TabletSchemaPB* out, TabletSchemaCloudPB&& in) {
// ATTN: please keep the set order aligned with the definition of proto.
out->set_keys_type(in.keys_type());
out->mutable_column()->Swap(in.mutable_column());
out->set_num_short_key_columns(in.num_short_key_columns());
out->set_num_rows_per_row_block(in.num_rows_per_row_block());
out->set_compress_kind(in.compress_kind());
out->set_bf_fpp(in.bf_fpp());
out->set_next_column_unique_id(in.next_column_unique_id());
out->set_delete_sign_idx(in.delete_sign_idx());
out->set_sequence_col_idx(in.sequence_col_idx());
out->set_sort_type(in.sort_type());
out->set_sort_col_num(in.sort_col_num());
out->set_compression_type(in.compression_type());
out->set_schema_version(in.schema_version());
out->set_disable_auto_compaction(in.disable_auto_compaction());
out->mutable_index()->Swap(in.mutable_index());
out->set_version_col_idx(in.version_col_idx());
out->set_store_row_column(in.store_row_column());
out->set_enable_single_replica_compaction(in.enable_single_replica_compaction());
out->set_skip_write_index_on_load(in.skip_write_index_on_load());
out->mutable_cluster_key_uids()->Swap(in.mutable_cluster_key_uids());
out->set_is_dynamic_schema(in.is_dynamic_schema());
out->mutable_row_store_column_unique_ids()->Swap(in.mutable_row_store_column_unique_ids());
out->set_inverted_index_storage_format(in.inverted_index_storage_format());
out->set_variant_enable_flatten_nested(in.enable_variant_flatten_nested());
out->set_skip_bitmap_col_idx(in.skip_bitmap_col_idx());
out->set_storage_page_size(in.storage_page_size());
}
TabletMetaCloudPB doris_tablet_meta_to_cloud(const TabletMetaPB& in) {
TabletMetaCloudPB out;
doris_tablet_meta_to_cloud(&out, in);
return out;
}
TabletMetaCloudPB doris_tablet_meta_to_cloud(TabletMetaPB&& in) {
TabletMetaCloudPB out;
doris_tablet_meta_to_cloud(&out, std::move(in));
return out;
}
void doris_tablet_meta_to_cloud(TabletMetaCloudPB* out, const TabletMetaPB& in) {
// ATTN: please keep the set order aligned with the definition of proto.
out->set_table_id(in.table_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_schema_hash(in.schema_hash());
out->set_shard_id(in.shard_id());
out->set_creation_time(in.creation_time());
out->set_cumulative_layer_point(in.cumulative_layer_point());
out->set_tablet_state(in.tablet_state());
if (in.has_schema()) {
doris_tablet_schema_to_cloud(out->mutable_schema(), in.schema());
}
if (in.rs_metas_size()) {
out->mutable_rs_metas()->Reserve(in.rs_metas_size());
for (const auto& rs_meta : in.rs_metas()) {
doris_rowset_meta_to_cloud(out->add_rs_metas(), rs_meta);
}
}
// ATTN: inc_rs_metas are deprecated, ignored here.
if (in.has_alter_task()) {
out->mutable_alter_task()->CopyFrom(in.alter_task());
}
out->set_in_restore_mode(in.in_restore_mode());
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
out->set_end_rowset_id(in.end_rowset_id());
out->set_preferred_rowset_type(in.preferred_rowset_type());
out->set_tablet_type(in.tablet_type());
if (in.stale_rs_metas_size()) {
out->mutable_stale_rs_metas()->Reserve(in.stale_rs_metas_size());
for (const auto& rs_meta : in.stale_rs_metas()) {
doris_rowset_meta_to_cloud(out->add_stale_rs_metas(), rs_meta);
}
}
out->set_replica_id(in.replica_id());
if (in.has_delete_bitmap()) {
out->mutable_delete_bitmap()->CopyFrom(in.delete_bitmap());
}
out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
out->set_storage_policy_id(in.storage_policy_id());
out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
if (in.has_binlog_config()) {
out->mutable_binlog_config()->CopyFrom(in.binlog_config());
}
out->set_compaction_policy(in.compaction_policy());
out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
out->set_time_series_compaction_file_count_threshold(
in.time_series_compaction_file_count_threshold());
out->set_time_series_compaction_time_threshold_seconds(
in.time_series_compaction_time_threshold_seconds());
out->set_time_series_compaction_empty_rowsets_threshold(
in.time_series_compaction_empty_rowsets_threshold());
out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
out->set_index_id(in.index_id());
out->set_is_in_memory(in.is_in_memory());
out->set_is_persistent(in.is_persistent());
out->set_table_name(in.table_name());
out->set_ttl_seconds(in.ttl_seconds());
if (in.has_schema_version()) {
out->set_schema_version(in.schema_version());
}
}
void doris_tablet_meta_to_cloud(TabletMetaCloudPB* out, TabletMetaPB&& in) {
// ATTN: please keep the set order aligned with the definition of proto.
out->set_table_id(in.table_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_schema_hash(in.schema_hash());
out->set_shard_id(in.shard_id());
out->set_creation_time(in.creation_time());
out->set_cumulative_layer_point(in.cumulative_layer_point());
out->set_tablet_state(in.tablet_state());
if (in.has_schema()) {
doris_tablet_schema_to_cloud(out->mutable_schema(), std::move(*in.mutable_schema()));
}
if (in.rs_metas_size()) {
size_t rs_metas_size = in.rs_metas_size();
out->mutable_rs_metas()->Reserve(rs_metas_size);
for (size_t i = 0; i < rs_metas_size; ++i) {
doris_rowset_meta_to_cloud(out->add_rs_metas(), std::move(*in.mutable_rs_metas(i)));
}
}
// ATTN: inc_rs_metas are deprecated, ignored here.
if (in.has_alter_task()) {
out->mutable_alter_task()->Swap(in.mutable_alter_task());
}
out->set_in_restore_mode(in.in_restore_mode());
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
out->set_end_rowset_id(in.end_rowset_id());
out->set_preferred_rowset_type(in.preferred_rowset_type());
out->set_tablet_type(in.tablet_type());
if (in.stale_rs_metas_size()) {
size_t rs_metas_size = in.stale_rs_metas_size();
out->mutable_stale_rs_metas()->Reserve(rs_metas_size);
for (size_t i = 0; i < rs_metas_size; i++) {
doris_rowset_meta_to_cloud(out->add_stale_rs_metas(),
std::move(*in.mutable_stale_rs_metas(i)));
}
}
out->set_replica_id(in.replica_id());
if (in.has_delete_bitmap()) {
out->mutable_delete_bitmap()->Swap(in.mutable_delete_bitmap());
}
out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
out->set_storage_policy_id(in.storage_policy_id());
out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
if (in.has_binlog_config()) {
out->mutable_binlog_config()->Swap(in.mutable_binlog_config());
}
out->set_compaction_policy(in.compaction_policy());
out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
out->set_time_series_compaction_file_count_threshold(
in.time_series_compaction_file_count_threshold());
out->set_time_series_compaction_time_threshold_seconds(
in.time_series_compaction_time_threshold_seconds());
out->set_time_series_compaction_empty_rowsets_threshold(
in.time_series_compaction_empty_rowsets_threshold());
out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
out->set_index_id(in.index_id());
out->set_is_in_memory(in.is_in_memory());
out->set_is_persistent(in.is_persistent());
out->set_table_name(in.table_name());
out->set_ttl_seconds(in.ttl_seconds());
if (in.has_schema_version()) {
out->set_schema_version(in.schema_version());
}
}
TabletMetaPB cloud_tablet_meta_to_doris(const TabletMetaCloudPB& in) {
TabletMetaPB out;
cloud_tablet_meta_to_doris(&out, in);
return out;
}
TabletMetaPB cloud_tablet_meta_to_doris(TabletMetaCloudPB&& in) {
TabletMetaPB out;
cloud_tablet_meta_to_doris(&out, std::move(in));
return out;
}
void cloud_tablet_meta_to_doris(TabletMetaPB* out, const TabletMetaCloudPB& in) {
// ATTN: please keep the set order aligned with the definition of proto.
out->set_table_id(in.table_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_schema_hash(in.schema_hash());
out->set_shard_id(in.shard_id());
out->set_creation_time(in.creation_time());
out->set_cumulative_layer_point(in.cumulative_layer_point());
out->set_tablet_state(in.tablet_state());
if (in.has_schema()) {
cloud_tablet_schema_to_doris(out->mutable_schema(), in.schema());
}
if (in.rs_metas_size()) {
out->mutable_rs_metas()->Reserve(in.rs_metas_size());
for (const auto& rs_meta : in.rs_metas()) {
cloud_rowset_meta_to_doris(out->add_rs_metas(), rs_meta);
}
}
// ATTN: inc_rs_metas are deprecated, ignored here.
if (in.has_alter_task()) {
out->mutable_alter_task()->CopyFrom(in.alter_task());
}
out->set_in_restore_mode(in.in_restore_mode());
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
out->set_end_rowset_id(in.end_rowset_id());
out->set_preferred_rowset_type(in.preferred_rowset_type());
out->set_tablet_type(in.tablet_type());
if (in.stale_rs_metas_size()) {
out->mutable_stale_rs_metas()->Reserve(in.stale_rs_metas_size());
for (const auto& rs_meta : in.stale_rs_metas()) {
cloud_rowset_meta_to_doris(out->add_stale_rs_metas(), rs_meta);
}
}
out->set_replica_id(in.replica_id());
if (in.has_delete_bitmap()) {
out->mutable_delete_bitmap()->CopyFrom(in.delete_bitmap());
}
out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
out->set_storage_policy_id(in.storage_policy_id());
out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
if (in.has_binlog_config()) {
out->mutable_binlog_config()->CopyFrom(in.binlog_config());
}
out->set_compaction_policy(in.compaction_policy());
out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
out->set_time_series_compaction_file_count_threshold(
in.time_series_compaction_file_count_threshold());
out->set_time_series_compaction_time_threshold_seconds(
in.time_series_compaction_time_threshold_seconds());
out->set_time_series_compaction_empty_rowsets_threshold(
in.time_series_compaction_empty_rowsets_threshold());
out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
out->set_index_id(in.index_id());
out->set_is_in_memory(in.is_in_memory());
out->set_is_persistent(in.is_persistent());
out->set_table_name(in.table_name());
out->set_ttl_seconds(in.ttl_seconds());
if (in.has_schema_version()) {
out->set_schema_version(in.schema_version());
}
}
void cloud_tablet_meta_to_doris(TabletMetaPB* out, TabletMetaCloudPB&& in) {
// ATTN: please keep the set order aligned with the definition of proto.
out->set_table_id(in.table_id());
out->set_partition_id(in.partition_id());
out->set_tablet_id(in.tablet_id());
out->set_schema_hash(in.schema_hash());
out->set_shard_id(in.shard_id());
out->set_creation_time(in.creation_time());
out->set_cumulative_layer_point(in.cumulative_layer_point());
out->set_tablet_state(in.tablet_state());
if (in.has_schema()) {
cloud_tablet_schema_to_doris(out->mutable_schema(), std::move(*in.mutable_schema()));
}
if (in.rs_metas_size()) {
size_t rs_metas_size = in.rs_metas_size();
out->mutable_rs_metas()->Reserve(rs_metas_size);
for (size_t i = 0; i < rs_metas_size; ++i) {
cloud_rowset_meta_to_doris(out->add_rs_metas(), std::move(*in.mutable_rs_metas(i)));
}
}
// ATTN: inc_rs_metas are deprecated, ignored here.
if (in.has_alter_task()) {
out->mutable_alter_task()->Swap(in.mutable_alter_task());
}
out->set_in_restore_mode(in.in_restore_mode());
out->mutable_tablet_uid()->CopyFrom(in.tablet_uid());
out->set_end_rowset_id(in.end_rowset_id());
out->set_preferred_rowset_type(in.preferred_rowset_type());
out->set_tablet_type(in.tablet_type());
if (in.stale_rs_metas_size()) {
size_t rs_metas_size = in.stale_rs_metas_size();
out->mutable_stale_rs_metas()->Reserve(rs_metas_size);
for (size_t i = 0; i < rs_metas_size; i++) {
cloud_rowset_meta_to_doris(out->add_stale_rs_metas(),
std::move(*in.mutable_stale_rs_metas(i)));
}
}
out->set_replica_id(in.replica_id());
if (in.has_delete_bitmap()) {
out->mutable_delete_bitmap()->Swap(in.mutable_delete_bitmap());
}
out->set_enable_unique_key_merge_on_write(in.enable_unique_key_merge_on_write());
out->set_storage_policy_id(in.storage_policy_id());
out->mutable_cooldown_meta_id()->CopyFrom(in.cooldown_meta_id());
if (in.has_binlog_config()) {
out->mutable_binlog_config()->Swap(in.mutable_binlog_config());
}
out->set_compaction_policy(in.compaction_policy());
out->set_time_series_compaction_goal_size_mbytes(in.time_series_compaction_goal_size_mbytes());
out->set_time_series_compaction_file_count_threshold(
in.time_series_compaction_file_count_threshold());
out->set_time_series_compaction_time_threshold_seconds(
in.time_series_compaction_time_threshold_seconds());
out->set_time_series_compaction_empty_rowsets_threshold(
in.time_series_compaction_empty_rowsets_threshold());
out->set_time_series_compaction_level_threshold(in.time_series_compaction_level_threshold());
out->set_index_id(in.index_id());
out->set_is_in_memory(in.is_in_memory());
out->set_is_persistent(in.is_persistent());
out->set_table_name(in.table_name());
out->set_ttl_seconds(in.ttl_seconds());
if (in.has_schema_version()) {
out->set_schema_version(in.schema_version());
}
}
} // namespace doris::cloud