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

/kind improvement

---------

Signed-off-by: longjiquan <jiquan.long@zilliz.com>
pull/30740/head
Jiquan Long 2024-02-27 10:18:55 +08:00 committed by GitHub
parent 637dcffb6b
commit 3e82d21ca1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 0 deletions

View File

@ -290,6 +290,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();