[Improvement](execute) optimize for ColumnNullable's serialize_vec/deserialize_vec (#28788)

optimize for ColumnNullable's serialize_vec/deserialize_vec
This commit is contained in:
Pxl
2024-01-11 11:19:15 +08:00
committed by yiguolei
parent e93a16ac6e
commit 3cf95d0fdf
44 changed files with 334 additions and 393 deletions

View File

@ -313,7 +313,7 @@ void ColumnString::serialize_vec(std::vector<StringRef>& keys, size_t num_rows,
uint32_t string_size(size_at(i));
auto* ptr = const_cast<char*>(keys[i].data + keys[i].size);
memcpy(ptr, &string_size, sizeof(string_size));
memcpy_fixed<uint32_t>(ptr, (char*)&string_size);
memcpy(ptr + sizeof(string_size), &chars[offset], string_size);
keys[i].size += sizeof(string_size) + string_size;
}
@ -327,7 +327,7 @@ void ColumnString::serialize_vec_with_null_map(std::vector<StringRef>& keys, siz
uint32_t string_size(size_at(i));
auto* ptr = const_cast<char*>(keys[i].data + keys[i].size);
memcpy(ptr, &string_size, sizeof(string_size));
memcpy_fixed<uint32_t>(ptr, (char*)&string_size);
memcpy(ptr + sizeof(string_size), &chars[offset], string_size);
keys[i].size += sizeof(string_size) + string_size;
}