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

Reply via email to