From 0b6c0d474f9a98b332ffdfbb00696465d6b60ea6 Mon Sep 17 00:00:00 2001 From: templarzq Date: Thu, 7 Jan 2021 15:33:42 +0800 Subject: [PATCH] Update ColumnAggregateFunction.cpp --- src/Columns/ColumnAggregateFunction.cpp | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/Columns/ColumnAggregateFunction.cpp b/src/Columns/ColumnAggregateFunction.cpp index 2f3a766b8f5..44928fefe56 100644 --- a/src/Columns/ColumnAggregateFunction.cpp +++ b/src/Columns/ColumnAggregateFunction.cpp @@ -608,5 +608,36 @@ ColumnAggregateFunction::ColumnAggregateFunction(const ColumnAggregateFunction & func(src_.func), src(src_.getPtr()), data(src_.data.begin(), src_.data.end()) { } + +//override method cloneResized +MutableColumnPtr ColumnAggregateFunction::cloneResized(size_t size) const { + //create a new col to return + auto cloneCol = cloneEmpty(); + auto res = typeid_cast(cloneCol.get()); + if (size == 0) + return cloneCol; + + size_t from_size = data.size(); + auto & res_data = res->data; + //copy data to cloned column + if (size <= from_size) + { + res_data.resize(size); + res->insertRangeFrom(*this, 0, size); + } + else + { + res_data.resize(from_size); + if (from_size > 0) + { + res->insertRangeFrom(*this, 0, from_size); + } + res->ensureOwnership(); + for(int i=0;iinsertDefault(); + } + } + return cloneCol; +} }