enhance: reduce 1x memory copy when loading json (#30753) (#30864)

/kind improvement
pr: #30753 

---------

Signed-off-by: longjiquan <jiquan.long@zilliz.com>
pull/30907/head
Jiquan Long 2024-02-28 16:36:59 +08:00 committed by GitHub
parent ee705b7ce8
commit b10bec38c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 0 deletions

View File

@ -284,6 +284,16 @@ class FieldDataJsonImpl : public FieldDataImpl<Json, true> {
return field_data_[offset].data().size();
}
void
FillFieldData(const std::shared_ptr<arrow::Array> array) override {
AssertInfo(array->type()->id() == arrow::Type::type::BINARY,
"inconsistent data type, expected: {}, got: {}",
"BINARY",
array->type()->ToString());
auto json_array = std::dynamic_pointer_cast<arrow::BinaryArray>(array);
FillFieldData(json_array);
}
void
FillFieldData(const std::shared_ptr<arrow::BinaryArray>& array) override {
auto n = array->length();