github-actions[bot] commented on code in PR #33124: URL: https://github.com/apache/doris/pull/33124#discussion_r1554806398
########## be/src/vec/data_types/serde/data_type_ipv4_serde.cpp: ########## @@ -87,6 +87,33 @@ column_data.insert_value(val); return Status::OK(); } +Status DataTypeIPv4SerDe::write_column_to_pb(const IColumn& column, PValues& result, int start, + int end) const { + const auto& column_data = assert_cast<const ColumnIPv4&>(column); + result.mutable_string_value()->Reserve(end - start); + auto* ptype = result.mutable_type(); + ptype->set_id(PGenericType::IPV4); + for (int i = start; i < end; ++i) { + IPv4Value ipv4_value(column_data.get_data()[i]); + result.add_string_value(ipv4_value.to_string()); + } + return Status::OK(); +} +Status DataTypeIPv4SerDe::read_column_from_pb(IColumn& column, const PValues& arg) const { Review Comment: warning: method 'read_column_from_pb' can be made static [readability-convert-member-functions-to-static] ```suggestion Status DataTypeIPv4SerDe::read_column_from_pb(IColumn& column, const PValues& arg) { ``` be/src/vec/data_types/serde/data_type_ipv4_serde.h:54: ```diff - Status read_column_from_pb(IColumn& column, const PValues& arg) const override; + static Status read_column_from_pb(IColumn& column, const PValues& arg) override; ``` ########## be/src/vec/data_types/serde/data_type_ipv4_serde.cpp: ########## @@ -87,6 +87,33 @@ Status DataTypeIPv4SerDe::deserialize_one_cell_from_json(IColumn& column, Slice& column_data.insert_value(val); return Status::OK(); } +Status DataTypeIPv4SerDe::write_column_to_pb(const IColumn& column, PValues& result, int start, Review Comment: warning: method 'write_column_to_pb' can be made static [readability-convert-member-functions-to-static] be/src/vec/data_types/serde/data_type_ipv4_serde.cpp:90: ```diff - int end) const { + int end) { ``` be/src/vec/data_types/serde/data_type_ipv4_serde.h:52: ```diff - Status write_column_to_pb(const IColumn& column, PValues& result, int start, - int end) const override; + static Status write_column_to_pb(const IColumn& column, PValues& result, int start, + int end) override; ``` ########## be/src/vec/data_types/serde/data_type_jsonb_serde.cpp: ########## @@ -239,6 +239,35 @@ Status DataTypeJsonbSerDe::read_one_cell_from_json(IColumn& column, parser.getWriter().getOutput()->getSize()); return Status::OK(); } +Status DataTypeJsonbSerDe::write_column_to_pb(const IColumn& column, PValues& result, int start, Review Comment: warning: method 'write_column_to_pb' can be made static [readability-convert-member-functions-to-static] be/src/vec/data_types/serde/data_type_jsonb_serde.cpp:242: ```diff - int end) const { + int end) { ``` be/src/vec/data_types/serde/data_type_jsonb_serde.h:67: ```diff - Status write_column_to_pb(const IColumn& column, PValues& result, int start, - int end) const override; + static Status write_column_to_pb(const IColumn& column, PValues& result, int start, + int end) override; ``` ########## be/test/vec/data_types/serde/data_type_serde_pb_test.cpp: ########## @@ -28,53 +29,284 @@ #include <string> #include <vector> +#include "common/status.h" #include "gtest/gtest_pred_impl.h" #include "olap/hll.h" #include "util/bitmap_value.h" #include "util/quantile_state.h" #include "vec/columns/column.h" +#include "vec/columns/column_array.h" #include "vec/columns/column_complex.h" #include "vec/columns/column_decimal.h" +#include "vec/columns/column_map.h" #include "vec/columns/column_nullable.h" #include "vec/columns/column_string.h" +#include "vec/columns/column_struct.h" #include "vec/columns/column_vector.h" +#include "vec/columns/columns_number.h" +#include "vec/core/block.h" #include "vec/core/types.h" #include "vec/data_types/data_type.h" +#include "vec/data_types/data_type_array.h" #include "vec/data_types/data_type_bitmap.h" #include "vec/data_types/data_type_decimal.h" #include "vec/data_types/data_type_hll.h" #include "vec/data_types/data_type_ipv4.h" #include "vec/data_types/data_type_ipv6.h" +#include "vec/data_types/data_type_map.h" #include "vec/data_types/data_type_nullable.h" #include "vec/data_types/data_type_number.h" #include "vec/data_types/data_type_quantilestate.h" #include "vec/data_types/data_type_string.h" +#include "vec/data_types/data_type_struct.h" +#include "vec/data_types/data_type_time_v2.h" #include "vec/data_types/serde/data_type_serde.h" namespace doris::vectorized { inline void column_to_pb(const DataTypePtr data_type, const IColumn& col, PValues* result) { const DataTypeSerDeSPtr serde = data_type->get_serde(); - static_cast<void>(serde->write_column_to_pb(col, *result, 0, col.size())); + Status st = serde->write_column_to_pb(col, *result, 0, col.size()); + if (!st.ok()) { + std::cerr << "column_to_pb error, maybe not impl it: " << st.msg() << " " + << data_type->get_name() << std::endl; + } } -inline void pb_to_column(const DataTypePtr data_type, PValues& result, IColumn& col) { +inline bool pb_to_column(const DataTypePtr data_type, PValues& result, IColumn& col) { auto serde = data_type->get_serde(); - static_cast<void>(serde->read_column_from_pb(col, result)); + Status st = serde->read_column_from_pb(col, result); + if (!st.ok()) { + std::cerr << "pb_to_column error, maybe not impl it: " << st.msg() << " " + << data_type->get_name() << std::endl; + return false; Review Comment: warning: redundant boolean literal in conditional return statement [readability-simplify-boolean-expr] be/test/vec/data_types/serde/data_type_serde_pb_test.cpp:78: ```diff - if (!st.ok()) { - std::cerr << "pb_to_column error, maybe not impl it: " << st.msg() << " " - << data_type->get_name() << std::endl; - return false; - } - return true; + return st.ok(); ``` ########## be/src/vec/data_types/serde/data_type_jsonb_serde.cpp: ########## @@ -239,6 +239,35 @@ parser.getWriter().getOutput()->getSize()); return Status::OK(); } +Status DataTypeJsonbSerDe::write_column_to_pb(const IColumn& column, PValues& result, int start, + int end) const { + const auto& string_column = assert_cast<const ColumnString&>(column); + result.mutable_string_value()->Reserve(end - start); + auto* ptype = result.mutable_type(); + ptype->set_id(PGenericType::JSONB); + for (size_t row_num = start; row_num < end; ++row_num) { + const auto& string_ref = string_column.get_data_at(row_num); + if (string_ref.size > 0) { + std::string json_string = + JsonbToJson::jsonb_to_json_string(string_ref.data, string_ref.size); + result.add_string_value(json_string); + } else { + result.add_string_value(NULL_IN_CSV_FOR_ORDINARY_TYPE); + } + } + return Status::OK(); +} +Status DataTypeJsonbSerDe::read_column_from_pb(IColumn& column, const PValues& arg) const { Review Comment: warning: method 'read_column_from_pb' can be made static [readability-convert-member-functions-to-static] ```suggestion Status DataTypeJsonbSerDe::read_column_from_pb(IColumn& column, const PValues& arg) { ``` be/src/vec/data_types/serde/data_type_jsonb_serde.h:69: ```diff - Status read_column_from_pb(IColumn& column, const PValues& arg) const override; + static Status read_column_from_pb(IColumn& column, const PValues& arg) override; ``` -- 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