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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2abbc9f921 [Fix](multi-catalog) Fix parquet bugs of #19758 'replace 
the single pointer with an array of 'conjuncts' in ExecNode'. (#20191)
2abbc9f921 is described below

commit 2abbc9f9212d1d3579756d106dcb5647f73ccb0d
Author: Qi Chen <[email protected]>
AuthorDate: Tue May 30 09:55:12 2023 +0800

    [Fix](multi-catalog) Fix parquet bugs of #19758 'replace the single pointer 
with an array of 'conjuncts' in ExecNode'. (#20191)
    
    Fix some parquet reader bugs which introduced by #19758 'replace the single 
pointer with an array of 'conjuncts' in ExecNode'.
---
 be/src/vec/exec/format/parquet/vparquet_group_reader.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp 
b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp
index f04f46c9a2..b50dc1d0e0 100644
--- a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp
+++ b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp
@@ -444,7 +444,7 @@ Status RowGroupReader::_do_lazy_read(Block* block, size_t 
batch_size, size_t* re
 
         VExprContextSPtrs filter_contexts;
         for (auto& conjunct : _filter_conjuncts) {
-            filter_contexts.emplace_back(conjunct.get());
+            filter_contexts.emplace_back(conjunct);
         }
         RETURN_IF_ERROR(VExprContext::execute_conjuncts(filter_contexts, 
&filters, block,
                                                         &result_filter, 
&can_filter_all));
@@ -770,8 +770,7 @@ Status RowGroupReader::_rewrite_dict_predicates() {
         auto iter = _slot_id_to_filter_conjuncts->find(slot_id);
         if (iter != _slot_id_to_filter_conjuncts->end()) {
             for (auto& ctx : iter->second) {
-                ctxs.emplace_back(ctx.get());
-                _filter_conjuncts.push_back(ctx);
+                ctxs.push_back(ctx);
             }
         } else {
             std::stringstream msg;
@@ -804,6 +803,9 @@ Status RowGroupReader::_rewrite_dict_predicates() {
         // About Performance: if dict_column size is too large, it will 
generate a large IN filter.
         if (dict_column->size() > MAX_DICT_CODE_PREDICATE_TO_REWRITE) {
             it = _dict_filter_cols.erase(it);
+            for (auto& ctx : ctxs) {
+                _filter_conjuncts.push_back(ctx);
+            }
             continue;
         }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to