Skip to content

Commit

Permalink
SerializationString improve performance
Browse files Browse the repository at this point in the history
  • Loading branch information
kitaisreal committed Dec 10, 2023
1 parent ecbae2d commit a0e1866
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/DataTypes/Serializations/SerializationString.cpp
Expand Up @@ -152,6 +152,8 @@ template <int UNROLL_TIMES>
static NO_INLINE void deserializeBinarySSE2(ColumnString::Chars & data, ColumnString::Offsets & offsets, ReadBuffer & istr, size_t limit)
{
size_t offset = data.size();
data.resize(std::max(data.capacity(), static_cast<size_t>(4096)));

for (size_t i = 0; i < limit; ++i)
{
if (istr.eof())
Expand All @@ -171,7 +173,8 @@ static NO_INLINE void deserializeBinarySSE2(ColumnString::Chars & data, ColumnSt
offset += size + 1;
offsets.push_back(offset);

data.resize(offset);
if (unlikely(offset > data.size()))
data.resize(data.size() * 2);

if (size)
{
Expand Down Expand Up @@ -203,6 +206,8 @@ static NO_INLINE void deserializeBinarySSE2(ColumnString::Chars & data, ColumnSt

data[offset - 1] = 0;
}

data.resize(offset);
}


Expand Down

0 comments on commit a0e1866

Please sign in to comment.