This is an automated email from the ASF dual-hosted git repository.

wangbo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new a72eaa2  [fix](Vectorized) optinmize dict page decoder init (#7917)
a72eaa2 is described below

commit a72eaa2b2e5ed00a1b8d422112e7a33cf81bb597
Author: Zeno Yang <cookie...@qq.com>
AuthorDate: Sat Jan 29 11:47:57 2022 +0800

    [fix](Vectorized) optinmize dict page decoder init (#7917)
    
    this may cause mem leak
---
 be/src/olap/rowset/segment_v2/column_reader.cpp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/be/src/olap/rowset/segment_v2/column_reader.cpp 
b/be/src/olap/rowset/segment_v2/column_reader.cpp
index b336ad1..4f97218 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/column_reader.cpp
@@ -677,18 +677,18 @@ Status FileColumnIterator::_read_data_page(const 
OrdinalPageIndexIterator& iter)
                 // PLAIN_ENCODING is supported for dict page right now
                 _dict_decoder.reset(new BinaryPlainPageDecoder(dict_data));
                 RETURN_IF_ERROR(_dict_decoder->init());
-            }
 
-            BinaryPlainPageDecoder* pd_decoder = 
(BinaryPlainPageDecoder*)_dict_decoder.get();
-            _dict_start_offset_array = new uint32_t[pd_decoder->_num_elems];
-            _dict_len_array = new uint32_t[pd_decoder->_num_elems];
+                auto* pd_decoder = 
(BinaryPlainPageDecoder*)_dict_decoder.get();
+                _dict_start_offset_array = new 
uint32_t[pd_decoder->_num_elems];
+                _dict_len_array = new uint32_t[pd_decoder->_num_elems];
 
-            // todo(wb) padding dict value for SIMD comparison
-            for (int i = 0; i < pd_decoder->_num_elems; i++) {
-                const uint32_t start_offset = pd_decoder->offset(i);
-                uint32_t len = pd_decoder->offset(i + 1) - start_offset;
-                _dict_start_offset_array[i] = start_offset;
-                _dict_len_array[i] = len;
+                // todo(wb) padding dict value for SIMD comparison
+                for (int i = 0; i < pd_decoder->_num_elems; i++) {
+                    const uint32_t start_offset = pd_decoder->offset(i);
+                    uint32_t len = pd_decoder->offset(i + 1) - start_offset;
+                    _dict_start_offset_array[i] = start_offset;
+                    _dict_len_array[i] = len;
+                }
             }
 
             dict_page_decoder->set_dict_decoder(_dict_decoder.get(), 
_dict_start_offset_array, _dict_len_array);

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to