Uh oh!
There was an error while loading. Please reload this page.
[Feature](Variant) support variant load - #24554
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
eldenmoon
commented
Sep 18, 2023
run buildall |
doris-robot
commented
Sep 18, 2023
TeamCity be ut coverage result: |
eldenmoon
commented
Sep 19, 2023
run buildall |
doris-robot
commented
Sep 19, 2023
TeamCity be ut coverage result: |
eldenmoon
commented
Sep 19, 2023
run buildall |
2 similar comments
eldenmoon
commented
Sep 19, 2023
run buildall |
eldenmoon
commented
Sep 19, 2023
run buildall |
doris-robot
commented
Sep 19, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Sep 19, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Sep 19, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
eldenmoon
commented
Sep 20, 2023
run buildall |
doris-robot
commented
Sep 20, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Sep 20, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| subcolumns.get_root()->data.get_least_common_type()->get_name(), path.get_path()); \ | ||
| } | ||
| Status ColumnObject::extract_root(const PathInData& path) { |
There was a problem hiding this comment.
warning: method 'extract_root' can be made const [readability-make-member-function-const]
be/src/vec/columns/column_object.h:457:
- Status extract_root(const PathInData& path);+ Status extract_root(const PathInData& path) const;| Status ColumnObject::extract_root(const PathInData& path) { | |
| Status ColumnObject::extract_root(const PathInData& path) const{ |
Uh oh!
There was an error while loading. Please reload this page.
| return TPrimitiveType::INVALID_TYPE; | ||
| } | ||
| doris::FieldType get_type_as_field_type() const override { |
There was a problem hiding this comment.
warning: function 'get_type_as_field_type' should be marked [[nodiscard]] [modernize-use-nodiscard]
| doris::FieldTypeget_type_as_field_type() constoverride { | |
| [[nodiscard]] doris::FieldTypeget_type_as_field_type() constoverride { |
| return TPrimitiveType::HLL; | ||
| } | ||
| doris::FieldType get_type_as_field_type() const override { |
There was a problem hiding this comment.
warning: function 'get_type_as_field_type' should be marked [[nodiscard]] [modernize-use-nodiscard]
| doris::FieldTypeget_type_as_field_type() constoverride { | |
| [[nodiscard]] doris::FieldTypeget_type_as_field_type() constoverride { |
| return TPrimitiveType::JSONB; | ||
| } | ||
| doris::FieldType get_type_as_field_type() const override { |
There was a problem hiding this comment.
warning: function 'get_type_as_field_type' should be marked [[nodiscard]] [modernize-use-nodiscard]
| doris::FieldTypeget_type_as_field_type() constoverride { | |
| [[nodiscard]] doris::FieldTypeget_type_as_field_type() constoverride { |
| __builtin_unreachable(); | ||
| } | ||
| doris::FieldType get_type_as_field_type() const override { |
There was a problem hiding this comment.
warning: function 'get_type_as_field_type' should be marked [[nodiscard]] [modernize-use-nodiscard]
| doris::FieldTypeget_type_as_field_type() constoverride { | |
| [[nodiscard]] doris::FieldTypeget_type_as_field_type() constoverride { |
| // and modified by Doris | ||
| #pragma once | ||
| #include <gen_cpp/Exprs_types.h> |
There was a problem hiding this comment.
warning: 'gen_cpp/Exprs_types.h' file not found [clang-diagnostic-error]
#include<gen_cpp/Exprs_types.h>
^eldenmoon
commented
Oct 7, 2023
run buildall |
doris-robot
commented
Oct 7, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Oct 7, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
| TPrimitiveType::type get_type_as_tprimitive_type() const override { | ||
| return TPrimitiveType::VARIANT; | ||
| } | ||
| doris::FieldType get_type_as_field_type() const override { |
There was a problem hiding this comment.
warning: function 'get_type_as_field_type' should be marked [[nodiscard]] [modernize-use-nodiscard]
| doris::FieldTypeget_type_as_field_type() constoverride { | |
| [[nodiscard]] doris::FieldTypeget_type_as_field_type() constoverride { |
| bool get_is_parametric() const override { return true; } | ||
| bool can_be_inside_nullable() const override { return true; } | ||
| bool have_subtypes() const override { return true; }; | ||
| bool can_be_inside_nullable() const override { return false; } |
There was a problem hiding this comment.
warning: function 'can_be_inside_nullable' should be marked [[nodiscard]] [modernize-use-nodiscard]
| boolcan_be_inside_nullable() constoverride { return false; } | |
| [[nodiscard]] boolcan_be_inside_nullable() constoverride { return false; } |
| const auto& column_object = assert_cast<const ColumnObject&>(column); | ||
| return "Variant: " + column_object.get_keys_str(); | ||
| } | ||
| std::string to_string(const IColumn& column, size_t row_num) const override; |
There was a problem hiding this comment.
warning: function 'to_string' should be marked [[nodiscard]] [modernize-use-nodiscard]
| std::stringto_string(constIColumn&column, size_trow_num) constoverride; | |
| [[nodiscard]] std::stringto_string(constIColumn&column, size_trow_num) constoverride; |
| [[noreturn]] Field get_default() const override { | ||
| LOG(FATAL) << "Method getDefault() is not implemented for data type " << get_name(); | ||
| } | ||
| Field get_default() const override { return VariantMap(); } |
There was a problem hiding this comment.
warning: function 'get_default' should be marked [[nodiscard]] [modernize-use-nodiscard]
| Fieldget_default() constoverride { returnVariantMap(); } | |
| [[nodiscard]] Fieldget_default() constoverride { returnVariantMap(); } |
| [[noreturn]] Field get_field(const TExprNode& node) const override { | ||
| LOG(FATAL) << "Unimplemented get_field for object"; | ||
| Field get_field(const TExprNode& node) const override { |
There was a problem hiding this comment.
warning: function 'get_field' should be marked [[nodiscard]] [modernize-use-nodiscard]
| Fieldget_field(constTExprNode&node) constoverride { | |
| [[nodiscard]] Fieldget_field(constTExprNode&node) constoverride { |
| }; | ||
| // create cresponding variant value to wrap from_type | ||
| WrapperType create_variant_wrapper(const DataTypePtr& from_type, |
There was a problem hiding this comment.
warning: function 'create_variant_wrapper' should be marked [[nodiscard]] [modernize-use-nodiscard]
| WrapperTypecreate_variant_wrapper(constDataTypePtr&from_type, | |
| [[nodiscard]] WrapperTypecreate_variant_wrapper(constDataTypePtr&from_type, |
| } | ||
| // create cresponding type convert from variant | ||
| WrapperType create_variant_wrapper(const DataTypeObject& from_type, |
There was a problem hiding this comment.
warning: function 'create_variant_wrapper' should be marked [[nodiscard]] [modernize-use-nodiscard]
| WrapperTypecreate_variant_wrapper(constDataTypeObject&from_type, | |
| [[nodiscard]] WrapperTypecreate_variant_wrapper(constDataTypeObject&from_type, |
| class OlapColumnDataConvertorVariant : public OlapColumnDataConvertorBase { | ||
| public: | ||
| OlapColumnDataConvertorVariant() |
There was a problem hiding this comment.
warning: use '= default' to define a trivial default constructor [modernize-use-equals-default]
be/src/vec/olap/olap_data_convertor.h:488:
- : _root_data_convertor(std::make_unique<OlapColumnDataConvertorVarChar>(true)) {}+ : _root_data_convertor(std::make_unique<OlapColumnDataConvertorVarChar>(true)) = default;| size_t num_rows) override; | ||
| Status convert_to_olap() override; | ||
| const void* get_data() const override; |
There was a problem hiding this comment.
warning: function 'get_data' should be marked [[nodiscard]] [modernize-use-nodiscard]
| constvoid*get_data() constoverride; | |
| [[nodiscard]] constvoid*get_data() constoverride; |
| Status convert_to_olap() override; | ||
| const void* get_data() const override; | ||
| const void* get_data_at(size_t offset) const override; |
There was a problem hiding this comment.
warning: function 'get_data_at' should be marked [[nodiscard]] [modernize-use-nodiscard]
| constvoid*get_data_at(size_toffset) constoverride; | |
| [[nodiscard]] constvoid*get_data_at(size_toffset) constoverride; |
eldenmoon
commented
Oct 23, 2023
run buildall |
| return std::string(buffer.GetString()); | ||
| } | ||
| void JsonFunctions::merge_objects(rapidjson::Value& dst_object, rapidjson::Value& src_object, |
There was a problem hiding this comment.
warning: method 'merge_objects' can be made static [readability-convert-member-functions-to-static]
| voidJsonFunctions::merge_objects(rapidjson::Value& dst_object, rapidjson::Value& src_object, | |
| staticvoidJsonFunctions::merge_objects(rapidjson::Value& dst_object, rapidjson::Value& src_object, |
| } | ||
| } | ||
| void BaseTablet::update_by_least_common_schema(const TabletSchemaSPtr& update_schema) { |
There was a problem hiding this comment.
warning: method 'update_by_least_common_schema' can be made static [readability-convert-member-functions-to-static]
be/src/olap/base_tablet.h:67:
- void update_by_least_common_schema(const TabletSchemaSPtr& update_schema);+ static void update_by_least_common_schema(const TabletSchemaSPtr& update_schema);| // Eg. rowset schema: A(int), B(float), C(int), D(int) | ||
| // _tabelt->tablet_schema: A(bigint), B(double) | ||
| // => update_schema: A(bigint), B(double), C(int), D(int) | ||
| void BetaRowsetWriter::update_rowset_schema(TabletSchemaSPtr flush_schema) { |
There was a problem hiding this comment.
warning: method 'update_rowset_schema' can be made static [readability-convert-member-functions-to-static]
be/src/olap/rowset/beta_rowset_writer.h:174:
- void update_rowset_schema(TabletSchemaSPtr flush_schema);+ static void update_rowset_schema(TabletSchemaSPtr flush_schema);| int64_t num_rows() const override { return _total_key_group_rows; } | ||
| virtual const RowsetWriterContext& context() const override { LOG(FATAL) << "Not implemented"; } |
There was a problem hiding this comment.
warning: 'virtual' is redundant since the function is already declared 'override' [modernize-use-override]
| virtualconstRowsetWriterContext&context() constoverride { LOG(FATAL) << "Not implemented"; } | |
| constRowsetWriterContext&context() constoverride { LOG(FATAL) << "Not implemented"; } |
| } | ||
| } | ||
| double ColumnArray::get_ratio_of_default_rows(double sample_ratio) const { |
There was a problem hiding this comment.
warning: method 'get_ratio_of_default_rows' can be made static [readability-convert-member-functions-to-static]
| doubleColumnArray::get_ratio_of_default_rows(double sample_ratio) const{ | |
| doubleColumnArray::get_ratio_of_default_rows(double sample_ratio) { |
be/src/vec/columns/column_array.h:267:
- double get_ratio_of_default_rows(double sample_ratio) const override;+ static double get_ratio_of_default_rows(double sample_ratio) override;| return get_ptr(); | ||
| } | ||
| double get_ratio_of_default_rows(double sample_ratio) const override { |
There was a problem hiding this comment.
warning: method 'get_ratio_of_default_rows' can be made static [readability-convert-member-functions-to-static]
| doubleget_ratio_of_default_rows(doublesample_ratio)constoverride { | |
| staticdoubleget_ratio_of_default_rows(doublesample_ratio) override { |
| [&](const auto& subcolumn) { return subcolumn.index(indexes, limit); }); | ||
| } | ||
| bool ColumnObject::Subcolumn::check_if_sparse_column(size_t num_rows) { |
There was a problem hiding this comment.
warning: method 'check_if_sparse_column' can be made static [readability-convert-member-functions-to-static]
be/src/vec/columns/column_object.h:143:
- bool check_if_sparse_column(size_t num_rows);+ static bool check_if_sparse_column(size_t num_rows);| } | ||
| void ColumnObject::try_insert_range_from(const IColumn& src, size_t start, size_t length) { | ||
| FieldInfo ColumnObject::Subcolumn::get_subcolumn_field_info() const { |
There was a problem hiding this comment.
warning: method 'get_subcolumn_field_info' can be made static [readability-convert-member-functions-to-static]
be/src/vec/columns/column_object.h:148:
- FieldInfo get_subcolumn_field_info() const;+ static FieldInfo get_subcolumn_field_info() ;| FieldInfo ColumnObject::Subcolumn::get_subcolumn_field_info() const{ | |
| FieldInfo ColumnObject::Subcolumn::get_subcolumn_field_info() { |
| return std::regex_match(path.get_path(), COLUMN_NAME_REGEX); | ||
| } | ||
| void ColumnObject::Subcolumn::wrapp_array_nullable() { |
There was a problem hiding this comment.
warning: method 'wrapp_array_nullable' can be made static [readability-convert-member-functions-to-static]
be/src/vec/columns/column_object.h:190:
- void wrapp_array_nullable();+ static void wrapp_array_nullable();| finalize(true); | ||
| } | ||
| void ColumnObject::ensure_root_node_type(const DataTypePtr& expected_root_type) { |
There was a problem hiding this comment.
warning: method 'ensure_root_node_type' can be made static [readability-convert-member-functions-to-static]
be/src/vec/columns/column_object.h:257:
- void ensure_root_node_type(const DataTypePtr& type);+ static void ensure_root_node_type(const DataTypePtr& type);doris-robot
commented
Oct 23, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Oct 23, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
Uh oh!
There was an error while loading. Please reload this page.
f32a5b7eldenmoon
commented
Nov 7, 2023
run buildall |
| return true; | ||
| } | ||
| void ColumnObject::merge_sparse_to_root_column() { |
There was a problem hiding this comment.
warning: method 'merge_sparse_to_root_column' can be made const [readability-make-member-function-const]
be/src/vec/columns/column_object.h:252:
- void merge_sparse_to_root_column();+ void merge_sparse_to_root_column() const;| voidColumnObject::merge_sparse_to_root_column() { | |
| voidColumnObject::merge_sparse_to_root_column() const{ |
| subcolumns.get_mutable_root()->data.get_finalized_column_ptr() = mresult->get_ptr(); | ||
| } | ||
| void ColumnObject::finalize(bool ignore_sparse) { |
There was a problem hiding this comment.
warning: method 'finalize' can be made const [readability-make-member-function-const]
be/src/vec/columns/column_object.h:326:
- void finalize(bool ignore_sparse);+ void finalize(bool ignore_sparse) const;| voidColumnObject::finalize(bool ignore_sparse) { | |
| voidColumnObject::finalize(bool ignore_sparse) const{ |
| finalize(true); | ||
| } | ||
| void ColumnObject::ensure_root_node_type(const DataTypePtr& expected_root_type) { |
There was a problem hiding this comment.
warning: method 'ensure_root_node_type' can be made static [readability-convert-member-functions-to-static]
be/src/vec/columns/column_object.h:255:
- void ensure_root_node_type(const DataTypePtr& type);+ static void ensure_root_node_type(const DataTypePtr& type);| add_sub_column({}, std::move(column), type); | ||
| } | ||
| bool ColumnObject::is_null_root() const { |
There was a problem hiding this comment.
warning: method 'is_null_root' can be made static [readability-convert-member-functions-to-static]
be/src/vec/columns/column_object.h:264:
- bool is_null_root() const;+ static bool is_null_root() ;| boolColumnObject::is_null_root() const{ | |
| boolColumnObject::is_null_root() { |
doris-robot
commented
Nov 7, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Nov 7, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
PR approved by at least one committer and no changes requested. |
eldenmoon
commented
Nov 8, 2023
run buildall |
doris-robot
commented
Nov 8, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Nov 8, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
eldenmoon
commented
Nov 8, 2023
For some reason this PR can not pass github action.I will push another PR |
Proposed changes
This PR is the load part of variant column
related #26225
Issue Number: close #xxx
Further comments
If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...