mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Use reserve() over resize() for Tuple
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
This commit is contained in:
parent
097bd6b7e8
commit
9e740eb9d0
@ -101,17 +101,21 @@ MutableColumnPtr ColumnTuple::cloneResized(size_t new_size) const
|
|||||||
|
|
||||||
Field ColumnTuple::operator[](size_t n) const
|
Field ColumnTuple::operator[](size_t n) const
|
||||||
{
|
{
|
||||||
return collections::map<Tuple>(columns, [n] (const auto & column) { return (*column)[n]; });
|
Field res;
|
||||||
|
get(n, res);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColumnTuple::get(size_t n, Field & res) const
|
void ColumnTuple::get(size_t n, Field & res) const
|
||||||
{
|
{
|
||||||
const size_t tuple_size = columns.size();
|
const size_t tuple_size = columns.size();
|
||||||
Tuple tuple(tuple_size);
|
|
||||||
for (const auto i : collections::range(0, tuple_size))
|
|
||||||
columns[i]->get(n, tuple[i]);
|
|
||||||
|
|
||||||
res = tuple;
|
res = Tuple();
|
||||||
|
Tuple & res_tuple = DB::get<Tuple &>(res);
|
||||||
|
res_tuple.reserve(tuple_size);
|
||||||
|
|
||||||
|
for (const auto i : collections::range(0, tuple_size))
|
||||||
|
res_tuple.push_back((*columns[i])[n]);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ColumnTuple::isDefaultAt(size_t n) const
|
bool ColumnTuple::isDefaultAt(size_t n) const
|
||||||
|
@ -44,11 +44,11 @@ void SerializationTuple::deserializeBinary(Field & field, ReadBuffer & istr) con
|
|||||||
{
|
{
|
||||||
const size_t size = elems.size();
|
const size_t size = elems.size();
|
||||||
|
|
||||||
Tuple tuple(size);
|
field = Tuple();
|
||||||
|
Tuple & tuple = get<Tuple &>(field);
|
||||||
|
tuple.reserve(size);
|
||||||
for (const auto i : collections::range(0, size))
|
for (const auto i : collections::range(0, size))
|
||||||
elems[i]->deserializeBinary(tuple[i], istr);
|
elems[i]->deserializeBinary(tuple.emplace_back(), istr);
|
||||||
|
|
||||||
field = tuple;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SerializationTuple::serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
|
void SerializationTuple::serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
|
||||||
|
Loading…
Reference in New Issue
Block a user