diff --git a/be/src/column/array_column.cpp b/be/src/column/array_column.cpp index 74932fd018393b..af4263064f8ff0 100644 --- a/be/src/column/array_column.cpp +++ b/be/src/column/array_column.cpp @@ -534,8 +534,9 @@ bool ArrayColumn::set_null(size_t idx) { size_t ArrayColumn::element_memory_usage(size_t from, size_t size) const { DCHECK_LE(from + size, this->size()) << "Range error"; - return _elements->element_memory_usage(_offsets->get_data()[from], _offsets->get_data()[from + size]) + - _offsets->Column::element_memory_usage(from, size); + size_t start_offset = _offsets->get_data()[from]; + size_t elements_num = _offsets->get_data()[from + size] - start_offset; + return _elements->element_memory_usage(start_offset, elements_num) + _offsets->Column::element_memory_usage(from, size); } void ArrayColumn::swap_column(Column& rhs) {