mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Better exception message [#CLICKHOUSE-4143]
This commit is contained in:
parent
f6207377c4
commit
2f3b4ba851
@ -177,7 +177,7 @@ void DataTypeString::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr,
|
||||
ColumnString::Chars_t & data = column_string.getChars();
|
||||
ColumnString::Offsets & offsets = column_string.getOffsets();
|
||||
|
||||
double avg_chars_size;
|
||||
double avg_chars_size = 1; /// By default reserve only for empty strings.
|
||||
|
||||
if (avg_value_size_hint && avg_value_size_hint > sizeof(offsets[0]))
|
||||
{
|
||||
@ -186,13 +186,19 @@ void DataTypeString::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr,
|
||||
|
||||
avg_chars_size = (avg_value_size_hint - sizeof(offsets[0])) * avg_value_size_hint_reserve_multiplier;
|
||||
}
|
||||
else
|
||||
{
|
||||
/// By default reserve only for empty strings.
|
||||
avg_chars_size = 1;
|
||||
}
|
||||
|
||||
data.reserve(data.size() + std::ceil(limit * avg_chars_size));
|
||||
try
|
||||
{
|
||||
data.reserve(data.size() + std::ceil(limit * avg_chars_size));
|
||||
}
|
||||
catch (Exception & e)
|
||||
{
|
||||
e.addMessage(
|
||||
"avg_value_size_hint = " + toString(avg_value_size_hint)
|
||||
+ ", avg_chars_size = " + toString(avg_chars_size)
|
||||
+ ", limit = " + toString(limit));
|
||||
throw;
|
||||
}
|
||||
|
||||
offsets.reserve(offsets.size() + limit);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user