eldenmoon commented on code in PR #50027:
URL: https://github.com/apache/doris/pull/50027#discussion_r2048734588
##########
be/src/vec/common/schema_util.cpp:
##########
@@ -768,7 +779,7 @@ Status check_path_stats(const std::vector<RowsetSharedPtr>&
intputs, RowsetShare
original_uid_to_path_stats.at(uid).end()) {
continue;
}
- if (original_uid_to_path_stats.at(uid).at(path) > size) {
+ if (size > 0 &&
original_uid_to_path_stats.at(uid).at(path) > size) {
Review Comment:
size will nerver < 0?
##########
be/src/vec/common/schema_util.cpp:
##########
@@ -709,7 +715,12 @@ void get_subpaths(const TabletColumn& variant,
std::vector<std::pair<size_t, std::string_view>> paths_with_sizes;
paths_with_sizes.reserve(stats.size());
for (const auto& [path, size] : stats) {
- paths_with_sizes.emplace_back(size, path);
+ SubColumnInfo sub_column_info;
Review Comment:
sub_column_info generate but not used?
##########
be/src/vec/common/schema_util.cpp:
##########
@@ -832,24 +843,29 @@ Status get_compaction_schema(const
std::vector<RowsetSharedPtr>& rowsets,
VLOG_DEBUG << "column " << column->name() << " unique id " <<
column->unique_id();
// get the subpaths
- get_subpaths(*column, uid_to_path_stats, uid_to_paths_set_info);
- std::vector<StringRef> sorted_subpaths(
-
uid_to_paths_set_info[column->unique_id()].sub_path_set.begin(),
- uid_to_paths_set_info[column->unique_id()].sub_path_set.end());
- std::sort(sorted_subpaths.begin(), sorted_subpaths.end());
- // append subcolumns
- for (const auto& subpath : sorted_subpaths) {
- TabletColumn subcolumn;
- subcolumn.set_name(column->name_lower_case() + "." +
subpath.to_string());
- subcolumn.set_type(FieldType::OLAP_FIELD_TYPE_VARIANT);
- subcolumn.set_parent_unique_id(column->unique_id());
- subcolumn.set_path_info(
- PathInData(column->name_lower_case() + "." +
subpath.to_string()));
- subcolumn.set_aggregation_method(column->aggregation());
-
subcolumn.set_variant_max_subcolumns_count(column->variant_max_subcolumns_count());
- subcolumn.set_is_nullable(true);
- output_schema->append_column(subcolumn);
- }
+ get_subpaths(*target, column->unique_id(), uid_to_path_stats,
uid_to_paths_set_info);
+
+ auto append_subcolumn = [&](phmap::flat_hash_set<std::string>&
path_set) {
+ std::vector<StringRef> sorted_subpaths(path_set.begin(),
path_set.end());
+ std::sort(sorted_subpaths.begin(), sorted_subpaths.end());
+ // append subcolumns
+ for (const auto& subpath : sorted_subpaths) {
+ TabletColumn subcolumn;
+ subcolumn.set_name(column->name_lower_case() + "." +
subpath.to_string());
+ subcolumn.set_type(FieldType::OLAP_FIELD_TYPE_VARIANT);
+ subcolumn.set_parent_unique_id(column->unique_id());
+ subcolumn.set_path_info(
+ PathInData(column->name_lower_case() + "." +
subpath.to_string()));
+ subcolumn.set_aggregation_method(column->aggregation());
+
subcolumn.set_variant_max_subcolumns_count(column->variant_max_subcolumns_count());
+ subcolumn.set_is_nullable(true);
+ output_schema->append_column(subcolumn);
Review Comment:
typed path real type is not added
##########
be/src/vec/json/path_in_data.h:
##########
@@ -91,6 +91,10 @@ class PathInData {
void to_protobuf(segment_v2::ColumnPathInfo* pb, int32_t
parent_col_unique_id) const;
void from_protobuf(const segment_v2::ColumnPathInfo& pb);
+ void set_is_typed(bool is_typed_) { is_typed = is_typed_; }
Review Comment:
not used ?
##########
fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java:
##########
@@ -2331,7 +2332,15 @@ public static boolean
isSameDecimalTypeWithDifferentPrecision(int precision1, in
return false;
}
- public static Type getTypeFromTypeName(String typeName) {
- return typeMap.getOrDefault(typeName, Type.UNSUPPORTED);
+ public static Type getTypeFromTypeName(String typeName, int precision, int
scale) {
Review Comment:
put this function in FetchRemoteTabletSchemaUtil and rename to getDataType
##########
be/src/vec/common/schema_util.cpp:
##########
@@ -790,7 +801,7 @@ Status check_path_stats(const std::vector<RowsetSharedPtr>&
intputs, RowsetShare
stats.size());
}
for (const auto& [path, size] : stats) {
- if (original_uid_to_path_stats.at(uid).at(path) != size) {
+ if (size > 0 && original_uid_to_path_stats.at(uid).at(path) !=
size) {
Review Comment:
sub_column_info
##########
fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java:
##########
@@ -785,7 +789,19 @@ private static void validateCatalogDataType(Type
catalogType) {
throw new AnalysisException("Unsupported data type: " +
catalogType.toSql());
}
- if (catalogType.isScalarType()) {
+ if (catalogType.isVariantType()) {
Review Comment:
add comment
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]