From d245ab76ccd7df6d18c927ee2f0d015e51ddd252 Mon Sep 17 00:00:00 2001 From: Jerry Hu Date: Thu, 14 Jul 2022 14:11:55 +0800 Subject: [PATCH] [improvement]Use uint32 instead of size_t to reduce agg key's length (#10832) --- be/src/vec/columns/column_string.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/be/src/vec/columns/column_string.cpp b/be/src/vec/columns/column_string.cpp index 296924aea2..e74ec544dc 100644 --- a/be/src/vec/columns/column_string.cpp +++ b/be/src/vec/columns/column_string.cpp @@ -163,8 +163,8 @@ ColumnPtr ColumnString::permute(const Permutation& perm, size_t limit) const { StringRef ColumnString::serialize_value_into_arena(size_t n, Arena& arena, char const*& begin) const { - IColumn::Offset string_size = size_at(n); - size_t offset = offset_at(n); + uint32_t string_size(size_at(n)); + uint32_t offset(offset_at(n)); StringRef res; res.size = sizeof(string_size) + string_size; @@ -177,7 +177,7 @@ StringRef ColumnString::serialize_value_into_arena(size_t n, Arena& arena, } const char* ColumnString::deserialize_and_insert_from_arena(const char* pos) { - const IColumn::Offset string_size = unaligned_load(pos); + const uint32_t string_size = unaligned_load(pos); pos += sizeof(string_size); const size_t old_size = chars.size(); @@ -196,14 +196,14 @@ size_t ColumnString::get_max_row_byte_size() const { max_size = std::max(max_size, size_at(i)); } - return max_size + sizeof(size_t); + return max_size + sizeof(uint32_t); } void ColumnString::serialize_vec(std::vector& keys, size_t num_rows, size_t max_row_byte_size) const { for (size_t i = 0; i < num_rows; ++i) { - size_t offset = offset_at(i); - size_t string_size = size_at(i); + uint32_t offset(offset_at(i)); + uint32_t string_size(size_at(i)); auto* ptr = const_cast(keys[i].data + keys[i].size); memcpy(ptr, &string_size, sizeof(string_size)); @@ -217,8 +217,8 @@ void ColumnString::serialize_vec_with_null_map(std::vector& keys, siz size_t max_row_byte_size) const { for (size_t i = 0; i < num_rows; ++i) { if (null_map[i] == 0) { - size_t offset = offset_at(i); - size_t string_size = size_at(i); + uint32_t offset(offset_at(i)); + uint32_t string_size(size_at(i)); auto* ptr = const_cast(keys[i].data + keys[i].size); memcpy(ptr, &string_size, sizeof(string_size));