Merge pull request #55714 from frinkr/perf-ColumnVector-insertMany

optimize ColumnVector::insertMany and ColumnVector::insertManyFrom
This commit is contained in:
SmitaRKulkarni 2023-10-31 12:19:54 +01:00 committed by GitHub
commit be28d83633
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -154,6 +154,17 @@ public:
data.push_back(assert_cast<const Self &>(src).getData()[n]);
}
void insertManyFrom(const IColumn & src, size_t position, size_t length) override
{
ValueType v = assert_cast<const Self &>(src).getData()[position];
data.resize_fill(data.size() + length, v);
}
void insertMany(const Field & field, size_t length) override
{
data.resize_fill(data.size() + length, static_cast<T>(field.get<T>()));
}
void insertData(const char * pos, size_t) override
{
data.emplace_back(unalignedLoad<T>(pos));