github-actions[bot] commented on code in PR #24554: URL: https://github.com/apache/doris/pull/24554#discussion_r1379864750
########## be/src/vec/data_types/serde/data_type_jsonb_serde.cpp: ########## @@ -119,5 +126,107 @@ Status DataTypeJsonbSerDe::write_column_to_orc(const std::string& timezone, cons return Status::NotSupported("write_column_to_orc with type [{}]", column.get_name()); } +static void convert_jsonb_to_rapidjson(const JsonbValue& val, rapidjson::Value& target, + rapidjson::Document::AllocatorType& allocator) { + // convert type of jsonb to rapidjson::Value + switch (val.type()) { + case JsonbType::T_True: + target.SetBool(true); + break; + case JsonbType::T_False: + target.SetBool(false); + break; + case JsonbType::T_Null: + target.SetNull(); + break; + case JsonbType::T_Float: + target.SetFloat(static_cast<const JsonbFloatVal&>(val).val()); + break; + case JsonbType::T_Double: + target.SetDouble(static_cast<const JsonbDoubleVal&>(val).val()); + break; + case JsonbType::T_Int64: + target.SetInt64(static_cast<const JsonbInt64Val&>(val).val()); + break; + case JsonbType::T_Int32: + target.SetInt(static_cast<const JsonbInt32Val&>(val).val()); + break; + case JsonbType::T_Int16: + target.SetInt(static_cast<const JsonbInt16Val&>(val).val()); + break; + case JsonbType::T_Int8: + target.SetInt(static_cast<const JsonbInt8Val&>(val).val()); + break; + case JsonbType::T_String: + target.SetString(static_cast<const JsonbStringVal&>(val).getBlob(), + static_cast<const JsonbStringVal&>(val).getBlobLen()); + break; + case JsonbType::T_Array: { + target.SetArray(); + const ArrayVal& array = static_cast<const ArrayVal&>(val); + if (array.numElem() == 0) { + target.SetNull(); + break; + } + target.Reserve(array.numElem(), allocator); + for (auto it = array.begin(); it != array.end(); ++it) { + rapidjson::Value val; + convert_jsonb_to_rapidjson(*static_cast<const JsonbValue*>(it), val, allocator); + target.PushBack(val, allocator); + } + break; + } + case JsonbType::T_Object: { + target.SetObject(); + const ObjectVal& obj = static_cast<const ObjectVal&>(val); + for (auto it = obj.begin(); it != obj.end(); ++it) { + rapidjson::Value val; + convert_jsonb_to_rapidjson(*it->value(), val, allocator); + target.AddMember(rapidjson::GenericStringRef(it->getKeyStr(), it->klen()), val, + allocator); + } + break; + } + default: + CHECK(false) << "unkown type " << static_cast<int>(val.type()); + break; + } +} + +void DataTypeJsonbSerDe::write_one_cell_to_json(const IColumn& column, rapidjson::Value& result, Review Comment: warning: method 'write_one_cell_to_json' can be made static [readability-convert-member-functions-to-static] ```suggestion static void DataTypeJsonbSerDe::write_one_cell_to_json(const IColumn& column, rapidjson::Value& result, ``` be/src/vec/data_types/serde/data_type_jsonb_serde.cpp:197: ```diff - int row_num) const { + int row_num) { ``` ########## be/src/vec/data_types/serde/data_type_nullable_serde.cpp: ########## @@ -337,5 +337,30 @@ Status DataTypeNullableSerDe::write_column_to_orc(const std::string& timezone, const std::string DataTypeNullableSerDe::NULL_IN_CSV_FOR_ORDINARY_TYPE = "\\N"; const std::string DataTypeNullableSerDe::NULL_IN_CSV_FOR_NESTED_TYPE = "null"; +void DataTypeNullableSerDe::write_one_cell_to_json(const IColumn& column, rapidjson::Value& result, Review Comment: warning: method 'write_one_cell_to_json' can be made static [readability-convert-member-functions-to-static] ```suggestion static ``` be/src/vec/data_types/serde/data_type_nullable_serde.cpp:341: ```diff - , - { + , + { ``` ########## be/src/vec/data_types/data_type_time_v2.h: ########## @@ -120,6 +123,9 @@ class DataTypeDateTimeV2 final : public DataTypeNumberBase<UInt64> { TPrimitiveType::type get_type_as_tprimitive_type() const override { return TPrimitiveType::DATETIMEV2; } + doris::FieldType get_storage_field_type() const override { Review Comment: warning: method 'get_storage_field_type' can be made static [readability-convert-member-functions-to-static] ```suggestion static doris::FieldType get_storage_field_type() override { ``` ########## be/src/vec/data_types/serde/data_type_string_serde.cpp: ########## @@ -253,5 +256,26 @@ Status DataTypeStringSerDe::write_column_to_orc(const std::string& timezone, con return Status::OK(); } +void DataTypeStringSerDe::write_one_cell_to_json(const IColumn& column, rapidjson::Value& result, Review Comment: warning: method 'write_one_cell_to_json' can be made static [readability-convert-member-functions-to-static] ```suggestion static void DataTypeStringSerDe::write_one_cell_to_json(const IColumn& column, rapidjson::Value& result, ``` be/src/vec/data_types/serde/data_type_string_serde.cpp:260: ```diff - int row_num) const { + int row_num) { ``` ########## be/src/vec/data_types/serde/data_type_array_serde.cpp: ########## @@ -222,6 +222,35 @@ void DataTypeArraySerDe::write_one_cell_to_jsonb(const IColumn& column, JsonbWri result.writeEndBinary(); } +void DataTypeArraySerDe::write_one_cell_to_json(const IColumn& column, rapidjson::Value& result, Review Comment: warning: method 'write_one_cell_to_json' can be made static [readability-convert-member-functions-to-static] ```suggestion static void DataTypeArraySerDe::write_one_cell_to_json(const IColumn& column, rapidjson::Value& result, ``` be/src/vec/data_types/serde/data_type_array_serde.cpp:226: ```diff - int row_num) const { + int row_num) { ``` -- 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: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org