github-actions[bot] commented on code in PR #43065: URL: https://github.com/apache/doris/pull/43065#discussion_r1827794036
########## be/test/vec/data_types/serde/data_type_serde_test.cpp: ########## @@ -220,4 +220,66 @@ TEST(DataTypeSerDeTest, DataTypeScalaSerDeTest) { serialize_and_deserialize_pb_test(); } +TEST(DataTypeSerDeTest, DataTypeRowStoreSerDeTest) { + // ipv6 + { + std::string ip = "5be8:dde9:7f0b:d5a7:bd01:b3be:9c69:573b"; + auto vec = vectorized::ColumnVector<IPv6>::create(); + IPv6Value ipv6; + EXPECT_TRUE(ipv6.from_string(ip)); + vec->insert(ipv6.value()); + + vectorized::DataTypePtr data_type(std::make_shared<vectorized::DataTypeIPv6>()); + auto serde = data_type->get_serde(0); + JsonbWriterT<JsonbOutStream> jsonb_writer; + Arena pool; + jsonb_writer.writeStartObject(); + serde->write_one_cell_to_jsonb(*vec, jsonb_writer, &pool, 0, 0); + jsonb_writer.writeEndObject(); + auto jsonb_column = ColumnString::create(); + jsonb_column->insert_data(jsonb_writer.getOutput()->getBuffer(), + jsonb_writer.getOutput()->getSize()); + StringRef jsonb_data = jsonb_column->get_data_at(0); + auto pdoc = JsonbDocument::createDocument(jsonb_data.data, jsonb_data.size); + JsonbDocument& doc = *pdoc; + for (auto it = doc->begin(); it != doc->end(); ++it) { + serde->read_one_cell_from_jsonb(*vec, it->value()); + } + EXPECT_TRUE(vec->size() == 2); + IPv6 data = vec->get_element(1); + IPv6Value ipv6_value(data); + EXPECT_EQ(ipv6_value.to_string(), ip); + } + + // ipv4 + { + std::string ip = "192.0.0.1"; + auto vec = vectorized::ColumnVector<IPv4>::create(); + IPv4Value ipv4; + EXPECT_TRUE(ipv4.from_string(ip)); Review Comment: warning: static member accessed through instance [readability-static-accessed-through-instance] ```suggestion EXPECT_TRUE(std::doris::IPv4Value::from_string(ip)); ``` ########## be/test/vec/data_types/serde/data_type_serde_test.cpp: ########## @@ -220,4 +220,66 @@ serialize_and_deserialize_pb_test(); } +TEST(DataTypeSerDeTest, DataTypeRowStoreSerDeTest) { + // ipv6 + { + std::string ip = "5be8:dde9:7f0b:d5a7:bd01:b3be:9c69:573b"; + auto vec = vectorized::ColumnVector<IPv6>::create(); + IPv6Value ipv6; + EXPECT_TRUE(ipv6.from_string(ip)); + vec->insert(ipv6.value()); + + vectorized::DataTypePtr data_type(std::make_shared<vectorized::DataTypeIPv6>()); + auto serde = data_type->get_serde(0); + JsonbWriterT<JsonbOutStream> jsonb_writer; + Arena pool; + jsonb_writer.writeStartObject(); + serde->write_one_cell_to_jsonb(*vec, jsonb_writer, &pool, 0, 0); + jsonb_writer.writeEndObject(); + auto jsonb_column = ColumnString::create(); + jsonb_column->insert_data(jsonb_writer.getOutput()->getBuffer(), + jsonb_writer.getOutput()->getSize()); + StringRef jsonb_data = jsonb_column->get_data_at(0); + auto pdoc = JsonbDocument::createDocument(jsonb_data.data, jsonb_data.size); + JsonbDocument& doc = *pdoc; + for (auto it = doc->begin(); it != doc->end(); ++it) { + serde->read_one_cell_from_jsonb(*vec, it->value()); + } + EXPECT_TRUE(vec->size() == 2); + IPv6 data = vec->get_element(1); + IPv6Value ipv6_value(data); + EXPECT_EQ(ipv6_value.to_string(), ip); + } + + // ipv4 + { + std::string ip = "192.0.0.1"; + auto vec = vectorized::ColumnVector<IPv4>::create(); + IPv4Value ipv4; + EXPECT_TRUE(ipv4.from_string(ip)); + vec->insert(ipv4.value()); + + vectorized::DataTypePtr data_type(std::make_shared<vectorized::DataTypeIPv4>()); + auto serde = data_type->get_serde(0); + JsonbWriterT<JsonbOutStream> jsonb_writer; + Arena pool; + jsonb_writer.writeStartObject(); + serde->write_one_cell_to_jsonb(*vec, jsonb_writer, &pool, 0, 0); + jsonb_writer.writeEndObject(); + auto jsonb_column = ColumnString::create(); + jsonb_column->insert_data(jsonb_writer.getOutput()->getBuffer(), + jsonb_writer.getOutput()->getSize()); + StringRef jsonb_data = jsonb_column->get_data_at(0); + auto pdoc = JsonbDocument::createDocument(jsonb_data.data, jsonb_data.size); Review Comment: warning: 'auto pdoc' can be declared as 'auto *pdoc' [readability-qualified-auto] ```suggestion auto *pdoc = JsonbDocument::createDocument(jsonb_data.data, jsonb_data.size); ``` -- 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