This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 7bb83ae3793 [cherry-pick](branch-21) fix append_data_by_selector_impl
reserve too mush useless memory (#39581) (#39635)
7bb83ae3793 is described below
commit 7bb83ae3793239de490fd078547d3ce2b8df85fa
Author: zhangstar333 <[email protected]>
AuthorDate: Wed Aug 21 08:47:30 2024 +0800
[cherry-pick](branch-21) fix append_data_by_selector_impl reserve too mush
useless memory (#39581) (#39635)
## Proposed changes
cherry-pick from master #39581
---
be/src/vec/columns/column_impl.h | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/be/src/vec/columns/column_impl.h b/be/src/vec/columns/column_impl.h
index ea01465b23c..8c45a1e29b0 100644
--- a/be/src/vec/columns/column_impl.h
+++ b/be/src/vec/columns/column_impl.h
@@ -42,8 +42,11 @@ void IColumn::append_data_by_selector_impl(MutablePtr& res,
const Selector& sele
"Size of selector: {} is larger than size of
column: {}",
selector.size(), num_rows);
}
-
- res->reserve(num_rows);
+ DCHECK_GE(end, begin);
+ // here wants insert some value from this column, and the nums is (end -
begin)
+ // and many be this column num_rows is 4096, but only need insert num is
(1 - 0) = 1
+ // so can't call res->reserve(num_rows), it's will be too mush waste memory
+ res->reserve(res->size() + (end - begin));
for (size_t i = begin; i < end; ++i) {
static_cast<Derived&>(*res).insert_from(*this, selector[i]);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]