diff --git a/be/src/vec/common/pod_array.h b/be/src/vec/common/pod_array.h index 850dbf03800e02..3a92c6acd3c5b4 100644 --- a/be/src/vec/common/pod_array.h +++ b/be/src/vec/common/pod_array.h @@ -460,6 +460,8 @@ class PODArray : public PODArrayBasec_end = this->c_start + new_size; } + /// reset the array capacity + /// fill the new additional elements using the value void resize_fill(size_t n, const T& value) { size_t old_size = this->size(); const auto new_size = this->byte_size(n); @@ -689,6 +691,8 @@ class PODArray : public PODArrayBaseresize(n); std::fill(begin(), end(), x); diff --git a/be/src/vec/exec/format/table/equality_delete.cpp b/be/src/vec/exec/format/table/equality_delete.cpp index 28d0e2519dd60b..98924d045a163a 100644 --- a/be/src/vec/exec/format/table/equality_delete.cpp +++ b/be/src/vec/exec/format/table/equality_delete.cpp @@ -60,7 +60,8 @@ Status SimpleEqualityDelete::filter_data_block(Block* data_block) { if (_filter == nullptr) { _filter = std::make_unique(rows, 0); } else { - _filter->resize_fill(rows, 0); + // reset the array capacity and fill all elements using the 0 + _filter->assign(rows, UInt8(0)); } if (column_and_type->column->is_nullable()) { @@ -132,7 +133,8 @@ Status MultiEqualityDelete::filter_data_block(Block* data_block) { if (_filter == nullptr) { _filter = std::make_unique(rows, 1); } else { - _filter->resize_fill(rows, 1); + //reset the array capacity and fill all elements using the 0 + _filter->assign(rows, UInt8(1)); } auto* filter_data = _filter->data(); for (size_t i = 0; i < rows; ++i) {